Angular.js: bug (ngModel): `$ setViewValue` no llama a` $$ debounceViewValue` cuando se llama con el `trigger` apropiado

Creado en 8 jul. 2016  ·  3Comentarios  ·  Fuente: angular/angular.js

¿Quieres solicitar una _ función_ o informar de un _ error_?
Insecto.

¿Cuál es el comportamiento actual?
Llamar a NgModelController#$setViewValue(value, trigger) llamará $$debounceViewValue() _only_ si no hay ngModelOptions o ngModelOptions#updateOnDefault es verdadero.
Vea aquí .

Si el comportamiento actual es un error, proporcione los pasos para reproducir y, si es posible, una demostración mínima del problema a través de https://plnkr.co o similar (plantilla: http://plnkr.co/edit/tpl:yBpEi4) .
Manifestación
Al hacer clic en ambos botones, esperaría que ambos NgModelController s se actualicen.
El que tiene {updateOn: 'blur'} no: decepcionado:

¿Cuál es el comportamiento esperado?
Llamar a NgModelController#$setViewValue(value, trigger) también llamará a $$debounceViewValue() si ngModelOptions#updateOn incluye trigger .

¿Cuál es la motivación / caso de uso para cambiar el comportamiento?
Para que funcione como se esperaba: sonríe:

¿Qué versiones de Angular y qué navegador / sistema operativo se ven afectados por este problema? Pruebe también con las últimas versiones estable y instantánea (https://code.angularjs.org/snapshot/).
Solo lo probé en 1.5.7, pero debería afectar a muchas versiones.

Otra información (p. Ej., Seguimiento de pila, problemas relacionados, sugerencias de cómo solucionarlo)
No: confundido:

forms low investigation broken expected use bug

Comentario más útil

Por cierto, esto fue un subproducto de una discusión con @jeserkin sobre gitter y expresó interés en intentarlo. (Desvergonzadamente) guardándolo para él: stick_out_tongue:

Todos 3 comentarios

Eso definitivamente no parece del todo correcto. Lo extraño es que si hace clic en el segundo y luego en el primer botón, ¡los cuatro se actualizan!

La razón por la que funciona si presiona el primer botón después de haber presionado el segundo, es debido al resumen que se activa al hacer clic en el botón. Hay una ngModel watch-action ejecutada por resumen, que sincronizará los valores (ver aquí ).

El problema es cuando esto sucede fuera de un resumen. E incluso desde dentro de un resumen, los valores no se actualizan sincrónicamente como ocurre en el primer caso (con updateOnDefault === true ).

Por cierto, esto fue un subproducto de una discusión con @jeserkin sobre gitter y expresó interés en intentarlo. (Desvergonzadamente) guardándolo para él: stick_out_tongue:

¿Fue útil esta página
0 / 5 - 0 calificaciones