如何在根模块中使用Angular Cesium NOT

时间:2017-09-25 16:25:00

标签: angular cesium

我试图在我的角度应用中集成角度铯。我已经按照this tutorial 的所有步骤(除外)而不是在我的应用中导入AngularCesiumModule.forRoot()模块,我在名为globe.module.ts的辅助模块中执行此操作。另外,我将html和css放在辅助模块组件globe.component.ts中。

一切似乎都在起作用,地图存在于我的dom中,但它很小。我尝试按照建议设置宽度和高度以及设置来设置样式 ViewEncapsulation.None但这不起作用。我的地图仍然很小。我也尝试将样式放在我的styles.css文件中但没有运气

有没有人在无根模块中使用过cesium或知道这样做的例子?你知道为什么我的风格不适用吗? 的更新

所以我通过访问.map-container来处理这些样式,而不是像文档那样#cesiumContainer ......这样可以吗?我错误地整合了这个?我觉得设置应该不只是在我的globe组件中包含AngularCesiumModule.forRoot() ......

1 个答案:

答案 0 :(得分:1)

forRoot方法的假定角色不正确。它反对forChild,而不是任何模块,但顶级'。

the guide所述,

  

forRoot和forChild是为根和要素模块提供不同导入值的方法的常规名称。 Angular并不认识它们,但Angular开发人员确实如此。

本指南章节专门用于延迟加载。延迟加载的模块有自己的注入器,因此forRoot初始化模块用于根注入器forChild执行用于子注入器

几乎所有的第三方图书馆都不需要在儿童注射器中进行特殊治疗,只有forRoot,而且应该使用它。

一般forRoot应该导入一次:

...
imports: [ModuleName.forRoot(...), ...],
exports: [ModuleName, ...],
...

如果还有其他模块应导入ModuleName,则会按原样导入,而不会导入forRoot(...)。实际使用取决于特定forRoot内部究竟发生了什么。

This article详细解释了forRootforChild背后的情况。