2016-08-08 10 views
3

wollte ich wissen, was für einen Unterschied zwischen diesem Code ist:Unterschied zwischen der Verwendung von Winkel 2-Renderer und mit nativeElement

export class SomeDirective implements OnInit { 

    constructor(private _elRef: ElementRef){} 

    ngOnInit(): any { 
     this._elRef.nativeElement.style.backgroundColor = 'green'; 
    } 
} 

und diese:

export class SomeDirective implements OnInit { 

    constructor(private _elRef: ElementRef, private _renderer: Renderer){} 

    ngOnInit(): any { 
     this._renderer.setElementStyle(this._elRef, 'background-color', 'green'); 
    } 
} 

Ich weiß, dass der zweite hat einige Vorteile über die erste muss ich nur wissen, was diese Vorteile sind.

Antwort

4

Mein Verständnis ist, dass Renderer eine Abstraktion in Angular2 ist. Dies bedeutet, dass eine dedizierte Implementierung entsprechend dem Ausführungskontext abgeschlossen ist. Zum Beispiel im Browser, mit Web-Worker, von der Server-Seite ...

In der Tat gibt es Kontexte, wenn die DOM-API nicht verfügbar ist. Ich denke über die Ausführung von Webarbeitern und Servern nach.

Sehen Sie diese Frage: