【发布时间】:2020-10-07 23:20:49
【问题描述】:
我想要达到的目标如下
使用字符串访问 ViewChild 然后向其添加类
但它给出了这个错误“无法读取未定义的属性'nativeElement'”
@ViewChild('projects', { static: false }) projects: ElementRef;
someFunc(){
let data = 'projects'
let elementToMarkActive = this[data]
elementToMarkActive.nativeElement.classList
}
【问题讨论】:
-
你引用了奇怪的元素——为什么不只是
this.projects?这也取决于时间(如果您从ngOnInit调用someFunc,则需要在 ViewChild 装饰器参数上将“static”设置为 true),或者,该元素可能由于其他原因不存在。你有一个标有#projects的元素吗?当您调用someFunc时,元素上是否有可能导致它不存在的*ngIf? -
如果显示模板会更容易诊断。
-
是的,很奇怪,这里的数据是从订阅到 observable 的字符串,有问题的代码是一个演示,将“静态”设置为 true 解决了,非常感谢
标签: angular typescript