0
votes

Angulaire 8 n'attend pas que la nouvelle valeur soit rendue sur la vue

J'essaie d'imprimer un document à l'aide de fenêtre.Print () mais Angular n'attends pas que la nouvelle valeur soit rendue. Il conserve l'impression de l'ancienne valeur.

J'essaie d'imprimer juste après avoir attribué la nouvelle valeur à l'objet comme celui-ci xxx

Le navigateur conserve l'impression de l'ancienne valeur. Comment imprimer la nouvelle valeur à la place?


0 commentaires

3 Réponses :


1
votes

Vous pouvez ajouter un délai d'attente avec une petite valeur. XXX


2 commentaires

Cela a fonctionné comme un charme sur Firefox et Chrome! Merci!


@ user3768828 - C'est plus d'une manière pirate de résoudre le problème. Je suggérerais que vous forciez manuellement la détection de changement manuellement.



1
votes

Le problème ici est qu'une fois que vous avez mis à jour la valeur, elle ne reflétera pas en vue que le cycle de détection de changement suivant est terminé, ce qui sera après l'exécution de l'impression. Vous pouvez utiliser settimeout pour résoudre ce problème, mais ce serait plus d'un piratage imo.

à la place, vous pouvez utiliser détectchanges pour forcer la détection de changement manuellement. De cette façon, la nouvelle valeur reflétera la vue et seulement l'impression sera exécutée. xxx


0 commentaires

1
votes

Il y a un opérateur RXJS Observer qui peut être utilisé pour observer les modifications avec un certain objet: xxx

Ce observer opération peut être trouvé ici


0 commentaires