J'ai un composant angular2 en utilisant Material Design Lite mais les éléments checkbox (probablement aussi) ne sont pas rendus correctement au premier chargement du composant, alors que si j'interagis avec les cases à cocher, le style mdl est correctement appliqué. Dans mon composant jeEst-il prudent d'utiliser setTimeout dans le code de production?
ngAfterViewInit() {
componentHandler.upgradeDom();
}
mais cela ne résout pas mon problème, donc je un setTimeout être exécuté juste après le service a renvoyé des données. Cela semble fonctionner mais est-il recommandé de le faire comme ça?
this.service.getDetails(this.id)
.finally(() => {
setTimeout(() => {
componentHandler.upgradeDom();
}, 10);
})
.subscribe((details) => {
this.details = details;
});
Il est là, il peut donc être utilisé. C'est juste où vous voulez utiliser et comment! – Smit
Peut être vous pouvez essayer 'changeDetection: ChangeDetectionStrategy.OnPush'.Vous pouvez trouver quelques informations utiles dans [Change Detection Explained] (https://blog.thoughtram.io/angular/2016/02/22/angular-2-change -detection-explain.html) –