2017-07-19 4 views
1

Wie referenziere ich auf eine Gruppe von Elementen mit # attribute, und gelten Stile auf sie?Angular 4. Verweis auf Elemente und anwenden Stil

<div #slide></div> 
<div #slide></div> 

Ich habe versucht, ViewChildren, ViewChild and ElementRef zu verwenden.

@ViewChildren('slide') slides:ElementRef; 
ngOnInit($window, scope): void {console.log(this.slides)} 

Aber es protokolliert undefined.

+0

Warum nicht einfach '[ngStyle]' usw. verwenden? –

Antwort

2

Es funktioniert nicht, weil ngOnInit Zyklus aufrufen, sobald Komponente instanziiert wird & vor dem Laden Component HTML in DOM-Baum. Sie sollten es innerhalb ngAfterViewInit Lifecycle-Hook tun, da es sicherstellen, dass innere Inhalt & Komponenten in DOM geladen werden.

0

Je nach Anwendungsfall möchten Sie vielleicht eine benutzerdefinierte Anweisung erstellen, um Ihre Aufgabe zu erfüllen. Dort würden Sie stattdessen die Host-Bindung verwenden. Es könnte am Ende sauberer sein, da Sie IDs sowieso überall platzieren und sie außerhalb dieser übergeordneten Komponente wiederverwendbar machen können.

+0

Die Bereitstellung einiger Beispielcode kann helfen. – onetwo12