我正在使用带有Typescript的Angular 7.2.2。
我正在通过索引中的 <script>
-tag 从"https://maps.googleapis.com/maps/api/js?key=myAPIkey"导入谷歌地图.html
脚本加载完成后,我可以看到我的一些样式被Google地图的样式覆盖了整个应用程序。
如何防止这种情况并确保 Google 地图的样式仅应用于我将在其中渲染地图的组件?
我尝试从显示组件中动态加载脚本,但显然样式封装仅适用于"styleUrls"参数提供的样式。
谢谢!
谢谢大家,我想我有问题的答案。
万一其他人绊倒了这个愚蠢的错误:
我使用角度材质,而角度材质又使用Roboto Medium作为默认字体。
由于我没有安装正确的网络字体,我的应用程序使用 Arial 作为后备。
现在,当我加载Google地图脚本时,该脚本也使用Roboto并正确加载该字体,我的整个应用程序从Arial切换到Roboto。
这让我觉得样式被覆盖了。
(感谢洛伦兹处理我糟糕的写作:))
,您在角度应用程序中使用的类在Google Maps API的样式中被命名为相同的东西。
您的样式按照您在angular.json
文件中的顺序导入,然后您的 index.html 文件在初始化后加载其脚本,这发生在读取angular.json
样式表之后。
因此,您的选择似乎是更改被覆盖的类的名称,以便Google不会覆盖它们,因为我不知道Google地图的NPM包与当前的Google地图保持同步,但是如果您找到一个,那也可能起作用。