我是解析器和格式化程序的新手。我有一個指令,將對模型的變化進行驗證。要做到這一點的一種方法是$ watch,但從我所瞭解的情況來看,這不是一種好方法,因爲它允許更新模型。在輸入文本框中不會調用解析器函數
所以我一直在尋找的解析器,並試圖將此代碼
app.directive('myDirective', function($compile) {
return {
restrict: 'E',
require: 'ngModel',
scope: {
},
link: function($scope, elem, attr, ctrl) {
console.debug($scope);
ctrl.$formatters.push(function(value) {
console.log("hello1");
return value;
});
ctrl.$parsers.unshift(function(value) {
debugger;
console.log("hello");
return value;
});
}
};
});
但解析器函數永遠不會被調用。格式化程序被調用一次。 Please see the plunkr。任何人都可以告訴我我在做什麼錯,爲什麼在我輸入文本框時解析器函數沒有被調用?
嘗試ctrl。$ parsers.push,仍然不起作用 – Abhik