Ich verwende ECMAScript6 in einem Projekt und versuche, ein Angular Filter zu erstellen. Unten ist mein Versuch, aber ich bekomme den folgenden Fehler in der Konsole: Kann die Eigenschaft 'PassFilter' von undefined nicht setzenECMAScript6 AngularJS Filter
Ich bin neu zu beiden ES6 und Angular. Ich musste auf Grund von Legacy-Beschränkungen auf diese Weise Bootstrap machen.
myAngularModule = angular.module("MyModule");
angular.element(document).ready(function() {
var myDiv = $("#myAngularDiv");
angular.bootstrap(myDiv, ["MyModule"]);
});
myAngularModule.filter('PassFilter', APP.filters.PassFilter);
/* Filter is in a separate file: */
class PassFilter {
constructor(input) {
var split = input.split('');
var result = "";
for (var i = 0; i < split.length; i++) {
result += "*";
}
return result;
}
}
APP.filters.PassFilter = PassFilter;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div id="myAngularDiv">
<input type="password" ng-model="password">
<span>{{password | PassFilter}}</span>
</div>
Basierend auf Ihren Kommentar, es scheint, dass APP.filters nicht definiert ist. – POZ
@POZ - ja es ist in einer anderen Datei definiert, ich zeige nur ein Schnipsel in diesem Fall der wichtigsten Sachen:/ – user1809790
Ja, das verstehe ich. Was ich sage ist: Könnte es sein, dass Ihre Bibliotheken nicht in der richtigen Reihenfolge geladen sind? Zum Beispiel würde ich das eckige Skript-Tag am Ende meines HTML platzieren (Best Practice mit externen Skripten). – POZ