Angular.js: bug(ngModel): `$setViewValue` n'appelle pas `$$debounceViewValue` lorsqu'il est appelé avec le `trigger` approprié

Créé le 8 juil. 2016  ·  3Commentaires  ·  Source: angular/angular.js

Voulez-vous demander une _fonctionnalité_ ou signaler un _bug_ ?
Bogue.

Quel est le comportement actuel ?
L'appel de NgModelController#$setViewValue(value, trigger) appellera $$debounceViewValue() _only_ s'il n'y a pas de ngModelOptions ou si ngModelOptions#updateOnDefault est vrai.
Voir ici .

Si le comportement actuel est un bogue, veuillez fournir les étapes à reproduire et si possible une démo minimale du problème via https://plnkr.co ou similaire (modèle : http://plnkr.co/edit/tpl:yBpEi4) .
Démo
En cliquant sur les deux boutons, je m'attendrais à ce que les deux NgModelController soient mis à jour.
Celui avec {updateOn: 'blur'} n'est pas :déçu:

Quel est le comportement attendu ?
Appeler NgModelController#$setViewValue(value, trigger) appellera également $$debounceViewValue() si ngModelOptions#updateOn inclut trigger .

Quelle est la motivation / le cas d'utilisation pour changer le comportement ?
Pour que cela fonctionne comme prévu :grin:

Quelles versions d'Angular et quel navigateur / système d'exploitation sont concernés par ce problème ? Veuillez également tester avec les dernières versions stable et instantanée (https://code.angularjs.org/snapshot/).
J'ai seulement essayé sur 1.5.7, mais cela devrait affecter de nombreuses versions en arrière.

Autres informations (par exemple, stacktraces, problèmes connexes, suggestions de résolution)
Non :confus:

forms low investigation broken expected use bug

Commentaire le plus utile

BTW, c'était un sous-produit d'une discussion avec @jeserkin sur gitter et il a exprimé son intérêt à

Tous les 3 commentaires

Cela ne semble certainement pas tout à fait juste. Ce qui est bizarre, c'est que si vous cliquez sur le deuxième puis sur le premier bouton, les quatre sont mis à jour !

La raison pour laquelle cela fonctionne si vous appuyez sur le premier bouton après avoir appuyé sur le second, est à cause du résumé qui est déclenché par le clic sur le bouton. Il y a une ngModel watch-action exécutée par digest, qui synchronisera les valeurs (voir ici ).

Le problème est lorsque cela se produit en dehors d'un condensé. Et même à l'intérieur d'un condensé, les valeurs ne sont pas mises à jour de manière synchrone comme cela se produit dans le premier cas (avec updateOnDefault === true ).

BTW, c'était un sous-produit d'une discussion avec @jeserkin sur gitter et il a exprimé son intérêt à

Cette page vous a été utile?
0 / 5 - 0 notes