Angular 角度-在指令的构造函数中使用RenderR2
我想将Angular应用程序迁移到更高版本,其中一个步骤是将Angular 角度-在指令的构造函数中使用RenderR2,angular,Angular,我想将Angular应用程序迁移到更高版本,其中一个步骤是将渲染器替换为渲染器2,我遇到了一个问题,因为渲染器2似乎未在构造函数中定义: constructor(private el: ElementRef, private renderer: Renderer2) { renderer.setAttribute(el.nativeElement, "data-id", this.uniqueId); } 所以我得到一个错误,它说: TypeError:无法读取未定
渲染器
替换为渲染器2
,我遇到了一个问题,因为渲染器2
似乎未在构造函数中定义:
constructor(private el: ElementRef, private renderer: Renderer2) {
renderer.setAttribute(el.nativeElement, "data-id", this.uniqueId);
}
所以我得到一个错误,它说:
TypeError:无法读取未定义的属性“setAttribute”
我是否必须将renderer.setAttribute(…)
移动到OnInit或类似的东西中?对于Renderer
来说,这很好,但是对于Renderer2
来说,它不再有效
当前角度版本:5.2.10
请告知。谢谢 我在
ngAfterViewInit
上添加了此操作。这意味着在第一次渲染之后
我还将显式检查元素是否已初始化,并可能添加重试策略。
if(el)el.nativeElement…
(如果您的元素位于
*ngIf
指令中)。感谢您的回复!但是不可能在构造函数内部使用呈现程序
?不,元素未定义。另外,在构造函数中编写代码是一种不好的做法,尤其是当您拥有所有这些漂亮的钩子时,比如ngOnInit
等等。还没有,我会尝试一下。谢谢