Angular.js: bug (ngModel): `$ setViewValue` não chama` $$ debounceViewValue` quando chamado com o `gatilho` apropriado

Criado em 8 jul. 2016  ·  3Comentários  ·  Fonte: angular/angular.js

Você deseja solicitar um _feature_ ou denunciar um _bug_?
Erro.

Qual é o comportamento atual?
Chamar NgModelController#$setViewValue(value, trigger) chamará $$debounceViewValue() _somente_ se não houver ngModelOptions ou ngModelOptions#updateOnDefault for verdadeiro.
Veja aqui .

Se o comportamento atual for um bug, forneça as etapas para reproduzir e, se possível, uma demonstração mínima do problema via https://plnkr.co ou semelhante (modelo: http://plnkr.co/edit/tpl:yBpEi4) .
Demo
Clicando em ambos os botões, esperaria que os dois NgModelController s fossem atualizados.
Aquele com {updateOn: 'blur'} não: desapontou:

Qual é o comportamento esperado?
Chamar NgModelController#$setViewValue(value, trigger) também chamará $$debounceViewValue() se ngModelOptions#updateOn incluir trigger .

Qual é a motivação / caso de uso para mudar o comportamento?
Para fazer funcionar como esperado: sorria:

Quais versões do Angular e quais navegador / sistema operacional são afetados por esse problema? Teste também com as versões mais recentes estáveis ​​e instantâneas (https://code.angularjs.org/snapshot/).
Tentei apenas no 1.5.7, mas deve afetar muitas versões anteriores.

Outras informações (por exemplo, rastreamentos de pilha, problemas relacionados, sugestões de como corrigir)
Não: confuso:

forms low investigation broken expected use bug

Comentários muito úteis

Aliás, isso foi um subproduto de uma discussão com @jeserkin no gitter e ele expressou interesse em tentar fazer isso. (Desavergonhadamente) guardando para ele: stick_out_tongue:

Todos 3 comentários

Isso definitivamente não parece muito certo. O que é estranho é que se você clicar no segundo botão e depois no primeiro, todos os quatro serão atualizados!

A razão de funcionar se você pressionar o primeiro botão depois de pressionar o segundo é por causa do resumo que é acionado pelo clique do botão. Existe uma ação de observação ngModel executada por resumo, que irá sincronizar os valores (veja aqui ).

O problema é quando isso acontece fora de um resumo. E mesmo dentro de um resumo, os valores não são atualizados de forma síncrona como acontece no primeiro caso (com updateOnDefault === true ).

Aliás, isso foi um subproduto de uma discussão com @jeserkin no gitter e ele expressou interesse em tentar fazer isso. (Desavergonhadamente) guardando para ele: stick_out_tongue:

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

visnup picture visnup  ·  3Comentários

nosideeffects picture nosideeffects  ·  3Comentários

kishanmundha picture kishanmundha  ·  3Comentários

WesleyKapow picture WesleyKapow  ·  3Comentários

ceymard picture ceymard  ·  3Comentários