パーサーとフォーマッターは初めてです。モデルの変更時に検証を行うディレクティブがあります。これを行う 1 つの方法は $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;
});
}
};
});
ただし、パーサー関数は呼び出されません。フォーマッタは 1 回呼び出されます。plunkr を参照してください。誰かが私が間違っていることを教えてもらえますか?テキストボックスに入力したときにパーサー関数が呼び出されないのはなぜですか?