Ich möchte die Eingabe von Typ Text in eckigen so erweitern, dass nach der Eingabe von Text durch den Benutzer wird der Text Wert durch einen benutzerdefinierten Filter, die einige Reinigung bei der Eingabe, hier ist was ich bis jetzt gekommen sind, aber ich eine Störung erhalte:Erweitern der Eingabe mit meinem eigenen Service
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)
hier ist das, was ich geschrieben habe:
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);
}
}
});
Danke für Ihre Antwort, ich weiß, dass eine Direktive das Problem lösen kann, aber ich möchte keine separate Direktive für diese Aufgabe haben. Ich möchte, dass meine gewünschte Funktionalität in allen Eingabedirektiven verfügbar ist, ohne eine zusätzliche Direktive hinzuzufügen – Rachmaninoff
Probieren Sie den Plunker, den ich hinzugefügt habe. – ScottL