我想知道这段代码有什么区别:
export class SomeDirective implements OnInit {
constructor(private _elRef: ElementRef){}
ngOnInit(): any {
this._elRef.nativeElement.style.backgroundColor = 'green';
}
}
和这一个:
export class SomeDirective implements OnInit {
constructor(private _elRef: ElementRef, private _renderer: Renderer){}
ngOnInit(): any {
this._renderer.setElementStyle(this._elRef, 'background-color', 'green');
}
}
我知道第二个比第一个有一些优势,我只需要知道具体是什么。
答案 0 :(得分:4)
我的理解是Renderer
是Angular2中的抽象。这意味着根据执行上下文插入专用实现。例如,在浏览器中,使用Web worker,从服务器端...
事实上,当DOM API不可用时,存在上下文。我想到了Web worker和服务器执行。
看到这个问题: