Angular.js: ng-model не обновляется при отправке значения в поле ввода

Созданный на 19 авг. 2015  ·  3Комментарии  ·  Источник: angular/angular.js

пример: у меня есть 3 поля ввода. Значения из первого и второго поля ввода вычисляются, и результат отображается в третьем поле ввода.

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">

я могу увидеть результат в форме на input3, но как я могу обновить модель?

Самый полезный комментарий

попробуй это-

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

как правило, вы хотите обновить модель, к которой привязан ваш ввод (и позволить angular распространять его на представление) вместо того, чтобы напрямую обновлять ваше представление. последний обычно используется только в модульных тестах.

Все 3 Комментарий

попробуй это-

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

как правило, вы хотите обновить модель, к которой привязан ваш ввод (и позволить angular распространять его на представление) вместо того, чтобы напрямую обновлять ваше представление. последний обычно используется только в модульных тестах.

На самом деле это не похоже на код Angular. В Angular все наоборот: вы обновляете модель, и изменение отражается в представлении. (Модель - единственный источник истины.)

Итак, вместо того, чтобы пытаться установить значение и ожидать обновления модели, вы должны обновить модель ( editForm.input3 ), и в результате будет обновлено значение элемента.

Тем не менее, это общий вопрос поддержки, и его следует направлять по соответствующим каналам .
Проблемы GitHub зарезервированы для отчетов об ошибках и запросов функций.

Это пригодилось для моей интеграции typeahead + bloodhound с angularJS

Была ли эта страница полезной?
0 / 5 - 0 рейтинги