gpt4 book ai didi

javascript - 无法在子组件中加载 DOM 元素

转载 作者:行者123 更新时间:2023-12-03 02:42:03 25 4
gpt4 key购买 nike

我发现 Angular 4.4.6 在通过其他组件的 ID 访问 DOM 元素时存在问题。

在我的组件中,我想为某些用途绘制 Google map 。如 API 中提供的示例所示,我通过在 .html 文件中包含以下内容来实现此目的:

<div id='map'></div>

在 .ts 文件中,我的 ngOnInit 函数中有以下内容:

...
var map = new google.maps.Map(document.getElementById('map'), {
...
}
...

这按预期工作,并显示了如果我按照路由组件中指定的方式直接加载组件,我可以使用的 map 。

但是,如果我想从另一个组件使用该组件,如下所示:

<my-selector></my-selector>

我在初始化 map 的行中收到以下错误。

ERROR TypeError: Cannot read property 'firstChild' of null

我错过了什么吗?我怀疑这与加载顺序有关,但我无法理解为什么它在一种情况下有效,而在另一种情况下无效。

最佳答案

问题是带有 map 的组件在 Terdata Covalent 步进器内被调用,由于某种原因,这与加载顺序发生了冲突。

我们切换到 Angular matStepper 的 Material 2,并遇到了通过在 AfterViewInit 中初始化 map 而不是在 OnInit 中初始化 map 解决的相同问题。

AfterViewInit 不适用于 Covaled 步进器。

关于javascript - 无法在子组件中加载 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com