値 1、2、または 3 のみを入力できる入力フィールドが必要なので、これらの値と一致しない場合にモデルへのすべての変更を防止するディレクティブを作成しようとしています。
たとえば、値が 1 で、5 に変更しても 1 のままである必要があります。
小さなフィドルhttp://jsfiddle.net/kannix/Q5YKE/をまとめましたが、 $parsers を使用するのはおそらく間違っています。
app.directive('myvalidator', function () {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ctrl) {
var validValues = [1,2,3];
ctrl.$parsers.push(function (value) {
if (validValues.indexOf(value) === -1){
//what to do here? should refuse wrong value and leave the old one
}
});
}
}
})