Я хочу расширить ввод текста текста в угловом формате таким образом, чтобы после ввода пользователем какого-либо текста текстовое значение передавалось через настраиваемый фильтр, который выполняет некоторую очистку при вводе ввода, здесь что я не пришел до сих пор, но я получаю сообщение об ошибке:Расширение ввода с использованием моего собственного сервиса
angular.js:13920 TypeError: Cannot read property 'length' of undefined
at addDirective (http://bank.com:4000/vendor/bower_components/angular/angular.js:9495:35)
at collectDirectives (http://bank.com:4000/vendor/bower_components/angular/angular.js:8677:11)
at compileNodes (http://bank.com:4000/vendor/bower_components/angular/angular.js:8539:22)
вот что я написал:
angular.module('app').config(extendInputDirective);
function extendInputDirective($provide) {
$provide.decorator('inputDirective', function($delegate, $filter) {
debugger;
var directive = $delegate[0];
var link = directive.link;
directive.compile = function() {
return function(scope,element, attrs, ngModel) {
debugger;
if(attrs.type === 'text') {
ngModel.$parsers.unshift(function(viewValue) {
var value = $filter('pArabicCharFilter')(viewValue);
return value;
});
}
link.apply(this, arguments);
}
}
});
Спасибо за ваш ответ. Я знаю, что директива может решить проблему, но я не хочу иметь отдельную директиву для этой задачи, я хочу, чтобы моя желаемая функциональность была доступна во всех директивах ввода без добавления дополнительной директивы – Rachmaninoff
Попробуйте плункер, который я добавил. – ScottL