EDIT:我发现了问题。我使用的是ng2助推器标签集模块,在该视图中添加贴图时,贴图不会渲染。我还没能解决这个问题。
我正在开发angular 2应用程序,需要将谷歌地图模块导入到一个子模块中。我的问题是——我该如何正确地做到这一点?这是可能的吗?
我尝试过的:
我添加了import { AgmCoreModule } from 'angular2-google-maps/core';
和AgmCoreModule.forRoot({ apiKey: 'xxx', libraries: ['places'] })
,其中xxx是从谷歌api网站下载的我的apiKey。如果我在一个新创建的angular cli应用程序中运行这段代码——将模块加载到app.module中,一切都会很好。选择器代码外观:
<sebm-google-map [latitude]="lat" [longitude]="lng">
<sebm-google-map-marker [latitude]="latitude" [longitude]="longitude">
</sebm-google-map-marker>
</sebm-google-map>
然而,我想在一个名为MapModule的模块中使用它,并将该模块导入我的app.module,所以我将AgmCoreModule导入MapModule,而不使用forRoot(),选择器在html中被识别,地图被加载,但地图显示空视图-即有一个带有谷歌标志和其他东西的地图,但没有内容-没有错误消息。我使用的代码与我的测试示例完全相同。
我还尝试使用forRoot({apiKey:"xxx"})添加AgmCoreModule,结果相同。我从App.module中删除了导入,只导入到MapModule中,结果相同。
我是不是遗漏了什么?如果需要,我可以提供更多的代码,但我认为我的问题在于缺乏导入方面的知识。
向Chris 致以亲切的问候
您是否尝试将此代码放入负责查看地图的组件中?
import {MapsAPILoader, SebmGoogleMap} from 'angular2-google-maps/core';
@ViewChild(SebmGoogleMap) map: SebmGoogleMap;
this.map.triggerResize();
如果映射没有在初始视图中呈现,例如在*ngif块中,则会出现问题。当您检查选项卡中的元素时,您看到的是地图代码,还是只有在地图选项卡激活时才看到地图代码?
通常,当没有错误时,triggerResize()会修复您的问题。