2017-10-19 5 views
0

// htmlIonic comment réparer "ExpressionChangedAfterItHasBeenCheckedError" erreur?

<span style="margin-left:43%;background-color:rgb(229,229,229);border- 
    radius:10%">&nbsp;&nbsp;{{formatEpoch(epoch)}}&nbsp;&nbsp;</span> 

// ts

lastdate:any;      

formatEpoch(epoch): string { 
    if(epoch == this.lastdate){ 
     return ''; 
    }else{ 
    this.lastdate =epoch; 
    return UtilService.getCalendarDay(epoch); 
    } 
    } 

ExpressionChangedAfterItHasBeenCheckedError: L'expression a changé après avoir été vérifié. Valeur précédente: '5:天 5:34 PM'. Valeur actuelle: ''.

Comment réparer cette erreur? S'il vous plaît aider.

+0

Supprimer l'expression avec effet secondaire du modèle – yurzui

+0

Merci pour la réponse. Aimeriez-vous dire plus de détails, s'il vous plaît? – fastworker399

+0

Angular exécute deux cycles de détection de changement en mode dev. Lors de la première vérification, vous modifiez 'this.lastdata' de sorte que la deuxième vérification renvoie l'erreur – yurzui

Répondre

0

Pourriez-vous essayer

lastdate:any;      
formatEpoch(epoch): string { 
    setTimeout(()=> { 
    if(epoch == this.lastdate){ 
     return ''; 
    }else{ 
     this.lastdate =epoch; 
     return UtilService.getCalendarDay(epoch); 
    } 
    }, 100); 
} 
+0

Merci pour la réponse. mais pas de changements. – fastworker399

0

si comme dans angulaire, essayez d'utiliser

this._changeDetectionRef.detectChanges(); 

à la fin de votre méthode, sans oublier d'ajouter

private _changeDetectionRef : ChangeDetectorRef 

en tant que paramètre du constructeur du composant possédant votre méthode.

Voir discution here