使用angular 2渲染器和使用nativeElement之间的区别

时间:2016-08-08 05:37:33

标签: angular

我想知道这段代码有什么区别:

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');
    }
}

我知道第二个比第一个有一些优势,我只需要知道具体是什么。

1 个答案:

答案 0 :(得分:4)

我的理解是Renderer是Angular2中的抽象。这意味着根据执行上下文插入专用实现。例如,在浏览器中,使用Web worker,从服务器端...

事实上,当DOM API不可用时,存在上下文。我想到了Web worker和服务器执行。

看到这个问题: