我发现 Angular 4.4.6 在通过不同组件的 ID 访问 DOM 元素时出现问题。
在我的组件中,我想为某些用途绘制谷歌地图。如 API 中提供的示例所示,我通过在 .html 文件中包含以下内容来执行此操作:
<div id='map'></div>
在 .ts 文件中,我的 ngOnInit
函数中有以下内容:
...
var map = new google.maps.Map(document.getElementById('map'), {
...
}
...
这将按预期工作,并显示如果我按照路由组件中的指定直接加载组件时可以使用的映射。
但是,如果我想从另一个组件使用此组件,如下所示:
<my-selector></my-selector>
我在初始化地图的行中收到以下错误。
错误类型错误: 无法读取 null 的属性"firstChild">
我错过了什么吗?我怀疑这与加载顺序有关,但我不明白为什么它在一种情况下有效,而在另一种情况下无效。
的组件是在 Terdata 共价步进器中调用的,由于某种原因,该组件与加载顺序无关。
我们切换到角度垫步进器的材质 2,并遇到了通过在 AfterViewInit 而不是 OnInit 中初始化地图来解决的相同问题。
AfterViewInit在Covaled步进器上不起作用。