我是解析器和格式化程序的新手。我有一个指令将对模型的更改进行验证。这样做的一种方法是 $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;
});
}
};
});
但是解析器函数永远不会被调用。格式化程序被调用一次。请看plunkr。谁能告诉我我做错了什么,为什么当我在文本框中输入时解析器函数没有被调用?