Ich versuche, Filter innerhalb einer AngularJS-Direktive zu verwenden, bin mir aber nicht sicher, wie das genau geht. Aus einigen Informationen auf der Mailing-Liste scheint es, dass Sie in der Lage sein sollten, $ filter zu injizieren und zu benutzen, aber ich bin mir nicht sicher, wie/wo ich es aufrufen soll.Verwenden von Filtern mit Direktiven in AngularJS
Meine Richtlinie sieht derzeit wie folgt aus:
myApp.directive('fancyDisplay', ['$filter', function($filter) {
return {
scope: {
'fancyDisplay': '='
},
template: "<div ng-repeat='datum in fancyDisplay | filter:tagFilter'>{{datum.name}}</div>"
};
}]);
Obwohl die filter:tagFilter
nicht funktioniert. Wie sollte ich meine Daten in der Richtlinie filtern?
JSfiddle verfügbar unter http://jsfiddle.net/VDLqa/4/ Vielen Dank im Voraus für alle Antworten.
Hmm ... wie würde ich das auf mehrere Filter erweitern? – jgm
Definiere mehr attrs: '
' und auf die Direktive 'scope: {fancyDisplay: '=', filter1: '=', filter2: '='}'. Hinweis: Ich habe sie "Filter1" und "Filter2" genannt, aber Sie können sie nennen, was Sie wollen. Wenn Sie viele Filter verwenden, würde ich Ihnen empfehlen, die 'ng-Modell'-Daten vorzufiltern, bevor Sie sie an die Direktive senden. – bmleiteVorfilterung ist interessant, da habe ich angefangen. Ich habe dies an der Richtlinie selbst versucht, aber es hat nicht funktioniert. Wie würde ich die Geige verändern, um das zu erreichen? – jgm