Angular-google-maps: GoogleMapsAPIWrapper 需要作为提供者传递

创建于 2017-06-07  ·  3评论  ·  资料来源: SebastianM/angular-google-maps

问题描述
当我尝试将 GoogleMapsAPIWrapper 注入到我的一个组件中时,我必须将 Wrapper 提供给我的 NgModule 或我的 NgComponent。 这似乎不是预期的行为。
如果这是一个 Angular 4 服务,你应该能够只导入 AgmCoreModule 而不必在你的模块中使用 providers 数组。

重现步骤和问题的最小演示

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
constructor(googleMapsAPIWrapper: GoogleMapsAPIWrapper) { //

}
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    AgmCoreModule.forRoot()
  ],
  providers: [  ], //wrong
  bootstrap: [AppComponent]
})
export class AppModule { }

上面给出了一个错误。
您需要更改为
providers: [ GoogleMapsAPIWrapper ], bootstrap: [AppComponent]

预期/期望行为
你不应该为你的模块提供GoogleMapsAPIWrapper

angular2 和 angular-google-maps 版本
角度:4.1.3

agm/核心:1.0.0-beta.0

其他信息

最有用的评论

@SebastianM似乎不起作用.. 否则我错过了一些东西.. 你能帮忙吗,

承诺没有得到解决,第 25 行没有在下面的 repo 中的 app.component.ts 中执行。 (控制台没有错误)

https://stackblitz.com/edit/agm-google-maps-api-wrapper-not-working

所有3条评论

GoogleMapsAPIWraper 在创建 agm-map 实例时创建。 这完全是故意的。 我们为每个地图维护一个实例。 如果要获取地图的实例,可以创建自定义组件并通过构造函数注入 GoogleMapsAPIWrapper。 所以我要关闭这个。

@SebastianM你有什么例子说明我想试试这个吗?

@SebastianM似乎不起作用.. 否则我错过了一些东西.. 你能帮忙吗,

承诺没有得到解决,第 25 行没有在下面的 repo 中的 app.component.ts 中执行。 (控制台没有错误)

https://stackblitz.com/edit/agm-google-maps-api-wrapper-not-working

此页面是否有帮助?
0 / 5 - 0 等级