実際にng-model属性が私のモデルに直接バインドされ、ユーザーが変更に対して即時フィードバックを得るのが好きです。私のユースケースは完璧です。しかし、私はモデルに無効な値を入れて、レンチを計算に入れることはできません。フォームコントロール内の値が有効な場合にのみ、モデルを更新する必要があります。無効な値の場合は、モデル値が固定されたままで制御値が変更されても問題ありません。ng-modelで無効な値を記録しない
私はNgModelControllerの$ setViewValue実装角度(1.2rc)のソースを変更した場合:これに
this.$setViewValue = function(value) {
...
if (this.$modelValue !== value) {
this.$modelValue = value;
...
}
};
:
まさに私がやりたいように思わthis.$setViewValue = function(value) {
...
if (this.$modelValue !== value && this.$valid) {
this.$modelValue = value;
...
}
};
、しかし私はドン」に適切な方法でこれを行う方法を知っている。この動作を変更する正しい方法は何ですか?あるいは何らかの理由で私の試みが失敗するのはどうですか?
更新:追加例。例えば
http://jsfiddle.net/FJvgK/1/ HTMLを見て:数は10と20の間の値に対して適切に示しているが、もしあなたが突然ように私はそれをしたい
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.validNumber = 15;
}
:
<div ng-controller="MyCtrl">
{{validNumber}}
<form>
<input
type="number"
ng-model="validNumber"
required
min="10"
max="20"
/>
</form>
</div>
とJSボックスに「8」を入力するか、2番目の数字を削除して、上記の最後の有効な数字が「1」のままにします。つまり、コントロールが有効でない場合でも、モデルは常に有効な値を持ちます。
はい私は例を追加しました。私はフィールドがnullになることを望んでいない、私はそれが有効な値を保持したい。 –
あなたは正しいです。それはモデルを変更しません、私は期待していなかったUIの他の場所に無効なモデル値を表示しません。 –