Comment détecter les modifications avec les objets Date dans Angular2?

Les objets de date qui sont modifiés à l'aide de la méthode setDate ne sont pas mis à jour dans le modèle.

Dans le modèle:

<p>{{date | date:'mediumDate'}}</p> 

En composant:

  nextDay(){ this.date.setDate(this.date.getDate()+1); } 

Mais lorsque j'appelle la fonction NextDay, le modèle n'est pas mis à jour avec la nouvelle valeur.

La seule façon d'obtenir la détection des changements fonctionnant était la suivante:

  nextDay(){ var tomorrow = new Date(); tomorrow.setDate(this.date.getDate()+1); this.date = tomorrow; } 

Existe-t-il une meilleure façon d'accomplir cette même tâche?

Je pense que c'est la bonne façon de modifier la référence de la variable de date. Des docs ici nous avons:

L'algorithme de détection de changement par défaut recherche des différences en comparant les valeurs de propriétés liées par référence dans les opérations de détection de changement.

Donc, si la référence de la date reste la même, rien ne se passera. Vous avez besoin d'une nouvelle référence Date et c'est pourquoi la deuxième version de nextDay() fonctionne.

Si vous supprimez le tuyau de mise en forme, vous verrez que seulement la deuxième version de nextDay() fonctionne.