Angular.js: ng-model não atualiza ao enviar um valor para um campo de entrada

Criado em 19 ago. 2015  ·  3Comentários  ·  Fonte: angular/angular.js

exemplo: eu tenho 3 campos de entrada. Os valores do primeiro e do segundo campo de entrada são calculados e o resultado é mostrado na terceira caixa de entrada.

var1 = parseFloat($("#input1").val();
var2 = parseFloat($("#input2").val();
result = var1 + var2;

$("#input3").val(result);

<input type="number" id="input3" name="input3" ng-model="editForm.input3" ng-currency class="form-control input-sm" placeholder="input3">

Posso ver o resultado no formulário em input3, mas como posso atualizar o modelo?

Comentários muito úteis

tente isso-

$("#input3")
  .val(result)
  .trigger('change')

geralmente, você deseja atualizar o modelo ao qual sua entrada está vinculada (e permitir que o angular o propague para a visualização) em vez de atualizar sua visualização diretamente. o último é normalmente usado apenas em testes de unidade.

Todos 3 comentários

tente isso-

$("#input3")
  .val(result)
  .trigger('change')

geralmente, você deseja atualizar o modelo ao qual sua entrada está vinculada (e permitir que o angular o propague para a visualização) em vez de atualizar sua visualização diretamente. o último é normalmente usado apenas em testes de unidade.

Na verdade, isso não parece um código angular. No Angular, é o contrário: você atualiza o modelo e a mudança é refletida na vista. (O modelo é a única fonte da verdade.)

Portanto, em vez de tentar definir o valor e esperar que o modelo seja atualizado, você deve atualizar o modelo ( editForm.input3 ) e o valor do elemento seria atualizado como resultado.

Dito isso, esta é uma pergunta de suporte geral e deve ser direcionada aos canais apropriados .
Os problemas do GitHub são reservados para relatórios de bugs e solicitações de recursos.

Isso foi útil para a minha integração entre o tipo avançado e o cão de caça com angularJS

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