Ng model özniteliğinin doğrudan modelime nasıl bağlanacağını ve kullanıcıların değişiklikler hakkında anında geri bildirim almasını seviyorum. Benim kullanım durumum için bu mükemmel. Ancak, hesaplamalara bir anahtar atabilecekleri modele geçersiz değerlerin konmasını istemiyorum. Bir şekilde modelin yalnızca form kontrolündeki değerin geçerli olması durumunda güncellenmesini istiyorum. Geçersiz değerler için, model değeri sabit kalırken kontrol değerinin değişmesi iyidir.ng-modeliyle geçersiz değerler kaydetme
Ben NgModelController en $ setViewValue uygulanmasını açısal (1.2rc) kaynağını değiştirirseniz: Buna
this.$setViewValue = function(value) {
...
if (this.$modelValue !== value) {
this.$modelValue = value;
...
}
};
:
Tam olarak ne istediğinizi yapmak gibi görünüyorthis.$setViewValue = function(value) {
...
if (this.$modelValue !== value && this.$valid) {
this.$modelValue = value;
...
}
};
, ancak don' Bunu nasıl uygun bir şekilde yapılacağını bilir. Bu davranışı değiştirmenin doğru yolu nedir? Yoksa bazı sebeplerden dolayı başarısızlığa mahkum edilmiş benim girişimlerim mi?
Güncelleştirme: Eklenen örnek.
<div ng-controller="MyCtrl">
{{validNumber}}
<form>
<input
type="number"
ng-model="validNumber"
required
min="10"
max="20"
/>
</form>
</div>
Ve JS:
Örneğin http://jsfiddle.net/FJvgK/1/ HTML bakmak
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.validNumber = 15;
}
sayısı 10 ile 20 arasında değerler için düzgün gösterir, ama öyle istedigini aniden eğer Kutuya '8' yazın veya '1' bırakarak ikinci rakamı silin, son geçerli sayı hala yukarıda gösterilir. Yani, kontrol her ne kadar olsa bile, model her zaman geçerli bir değere sahiptir.
evet üzgünüm bir örnek ekledim. Alanın boş gitmesini istemiyorum, geçerli bir değer tutmasını istiyorum. –
Haklıydın. Model değişmez, aynı zamanda beklemediğim/istemediğim kullanıcı arayüzünde yer alan geçersiz model değerlerini de göstermez. –