Я хочу создать директиву AngularJS, которая заменяет исходный элемент и выполняет некоторую фильтрацию на его функции синтаксического анализа.Как добавить анализатор в директиву AngularJS thet заменяет исходный элемент?
Это первый пример делает именно то, что я хочу, но директива не заменяет оригинальный элемент:
http://plnkr.co/edit/H19sKtaQoHMkJak2PzkT
angular.module('myapp', [])
.directive('nondigit', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
if(!modelCtrl) return;
modelCtrl.$parsers.push(function (inputValue) {
//filtering in here
});
}
}
})
В этом втором примере, когда я изменить директиву, чтобы заменить элемент , функция парсинга не вызывается больше и фильтрация стопа:
http://plnkr.co/edit/DqmKAYoA1NGQNYuN6fwX
angular.module('myapp', [])
.directive('nondigit', function() {
return {
restrict: 'E',
require: 'ngModel',
replace: true,
template: '<div><input type="text" ng-model="nondigitModel"></div>',
scope: {
nondigitModel: '=ngModel'
},
link: function(scope, element, attrs, modelCtrl) {
if(!modelCtrl) return;
modelCtrl.$parsers.push(function (inputValue) {
//filtering in here
});
}
}
})
Кто-нибудь может сказать, что я делаю неправильно на втором примере?