1
我做了這個指令來驗證號碼,如果它是在一個範圍:AngularJs確認指令不更新模型
app.directive('nkNumber', function(){
return {
scope: {
max: '=nkMax',
min: '=nkMin'
},
require: 'ngModel',
restrict: 'A',
link: function($scope, iElm, iAttrs, controller) {
function validate(value){
if (angular.isDefined(value)){
value = parseInt(value);
if ($scope.max){
var max = parseInt($scope.max);
controller.$setValidity('nkMax', value < max)
}
if ($scope.min){
var min = parseInt($scope.min);
controller.$setValidity('nkMin', value > min)
}
}
return value;
}
controller.$parsers.push(validate);
controller.$formatters.push(validate);
}
};
});
驗證工作正常,但是當我改變數值沒有更新我的模型在輸入。
這是怎麼發生的?我該如何解決它?
哪裏/爲什麼/如何更新模型?驗證確實有效:http://plnkr.co/edit/PWOL8zyFDnpiLDuFnjrn?p =預覽,但是請你解釋一下預期的行爲是什麼? –
mmm它的工作原理...這是Angular版本將其更改爲「1.0.3」,它停止工作...我使用的是「1.0.5」... http://plnkr.co/edit/ qRc8JClqCc5DFTjigrxL?p =預覽 – rascio