Angular.js: 入力フィールドに値を送信するときにng-modelが更新されない

作成日 2015年08月19日  ·  3コメント  ·  ソース: angular/angular.js

例:3つの入力フィールドがあります。 1番目と2番目の入力フィールドの値が計算され、結果が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')

通常、ビューを直接更新するのではなく、入力がバインドされているモデルを更新します(そして、角度でビューに伝播させます)。 後者は通常、単体テストでのみ使用されます。

全てのコメント3件

これを試して-

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

通常、ビューを直接更新するのではなく、入力がバインドされているモデルを更新します(そして、角度でビューに伝播させます)。 後者は通常、単体テストでのみ使用されます。

実際、これはAngularコードのようには感じられません。 Angularでは、その逆です。モデルを更新すると、変更がビューに反映されます。 (モデルは信頼できる唯一の情報源です。)

したがって、値を設定してモデルが更新されることを期待する代わりに、モデル( editForm.input3 )を更新する必要があります。その結果、要素の値が更新されます。

とはいえ、これは一般的なサポートの質問であり、適切なチャネルに転送する
GitHubの問題は、バグレポートと機能リクエストのために予約されています。

これは、typeahead + bloodhoundとangularJSの統合に役立ちました

このページは役に立ちましたか?
0 / 5 - 0 評価