Ich habe eine angular2 Komponente mit Material Design Lite, aber die Checkbox (wahrscheinlich auch andere) Elemente werden nicht richtig beim ersten Laden der Komponente gerendert, während, wenn ich mit den Kontrollkästchen interagiere, der MDL Style korrekt angewendet wird. In meiner Komponente habe ichIst es sicher, setTimeout im Produktionscode zu verwenden?
ngAfterViewInit() {
componentHandler.upgradeDom();
}
aber das ist mein Problem nicht beheben, so habe ich eine SetTimeout ausgeführt werden nur, nachdem der Dienst einige Daten zurückgegeben hat. Das scheint zu funktionieren, aber ist es empfehlenswert, es so zu machen?
this.service.getDetails(this.id)
.finally(() => {
setTimeout(() => {
componentHandler.upgradeDom();
}, 10);
})
.subscribe((details) => {
this.details = details;
});
Es ist da, so kann es verwendet werden. Es ist genau dort, wo Sie es verwenden möchten und wie! – Smit
Möglicherweise können Sie 'changeDetection: ChangeDetectionStrategy.OnPush' versuchen. Sie finden möglicherweise nützliche Informationen in [Change Detection Explained] (https://blog.hotrebstram.io/angular/2016/02/22/angular-2-change -Erkennung-erklärt.html) –