Angular.js: لا يتم تحديث نموذج ng عند إرسال قيمة إلى حقل إدخال

تم إنشاؤها على ١٩ أغسطس ٢٠١٥  ·  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')

بشكل عام ، تريد تحديث النموذج المرتبط بإدخالك (والسماح للزاوية بنشره في العرض) بدلاً من تحديث العرض الخاص بك مباشرةً. عادةً ما يتم استخدام الأخير فقط في اختبارات الوحدة.

ال 3 كومينتر

جرب هذا-

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

بشكل عام ، تريد تحديث النموذج المرتبط بإدخالك (والسماح للزاوية بنشره في العرض) بدلاً من تحديث العرض الخاص بك مباشرةً. عادةً ما يتم استخدام الأخير فقط في اختبارات الوحدة.

في الواقع ، هذا لا يشبه الرمز الزاوي. في Angular ، العكس هو الصحيح: تقوم بتحديث النموذج وينعكس التغيير في العرض. (النموذج هو المصدر الوحيد للحقيقة).

لذلك ، بدلاً من محاولة تعيين القيمة وتوقع تحديث النموذج ، يجب عليك تحديث النموذج ( editForm.input3 ) وسيتم تحديث قيمة العنصر كنتيجة.

ومع ذلك ، هذا سؤال دعم عام ويجب توجيهه إلى القنوات المناسبة .
يتم حجز مشكلات GitHub لتقارير الأخطاء وطلبات الميزات.

جاء هذا في متناول يدي من أجل تكامل typeahead + bloodhound مع angularJS

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات