【问题标题】:Using SebM google maps module in child component shows blank map在子组件中使用 SebM 谷歌地图模块显示空白地图
【发布时间】:2017-02-07 14:54:45
【问题描述】:

编辑:我发现了问题。我正在使用 ng2-boostrap tabset 模块, 在此视图中添加地图时,地图不会渲染。我 还是没能解决问题。

我正在开发一个 Angular 2 应用程序,我需要将谷歌地图模块导入到子模块中。我的问题是 - 我怎样才能正确地做到这一点?这真的可能吗?

我尝试过的:

我添加了import { AgmCoreModule } from 'angular2-google-maps/core';AgmCoreModule.forRoot({ apiKey: 'xxx', libraries: ['places'] }),其中xxx 是我从google 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 中,结果相同。

我在这里错过了什么吗?如果需要,我可以提供更多代码,但我认为我的问题在于缺乏导入知识。

克里斯的问候

【问题讨论】:

    标签: google-maps angular import angular2-google-maps


    【解决方案1】:

    您是否尝试将此代码放入负责查看地图的组件中?

      import {MapsAPILoader, SebmGoogleMap} from 'angular2-google-maps/core';
      @ViewChild(SebmGoogleMap) map: SebmGoogleMap;
    
      this.map.triggerResize();
    

    如果地图未在初始视图中呈现,例如。在 *ngif 块内然后出现问题。当您检查选项卡中的元素时,您会看到地图代码还是仅在地图选项卡激活时才看到地图代码?

    通常在没有错误的情况下,triggerResize() 会解决您的问题。

    【讨论】:

    • 我把你写的代码加到一个按钮上,在视图完全加载后按下它,就可以了!现在我将把它添加到最后一个生命周期钩子中,看看这是否使它“自动”,非常感谢!
    • 我在使用新的 @agm/core 包时遇到了这个问题,因为由于 Angular 5 更新我们不得不升级
    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多