1

alle!Custom Kettenfilter in Winkel

Ich habe ein Problem: Ich kann Filter in Angular nicht in einer Filterkette verwendet schreiben. Ich kenne Angular nicht genug, also hoffe ich, dass dies ein trivialer Fehler in meinem Code ist.

Also, zunächst einmal meine js mit Filter-Datei (Ich nehme ich ganz etwas tun könnte dumm, so stelle ich es in fast Form):

(function() { 
    angular.module('myModule') 
     .filter('firstFilter', function() { 
      return function (input) { 
        return input; 
       } 
     }); 

    angular.module('myModule') 
     .filter('secondFilter', function() { 
      return function (input, firstParam, secondParam) { 
       return input; 
      } 
     }); 
})(); 

geht dann ein Stück von meinem HTML-Code, der Verwendung macht die secondFilter:

<tr ng-repeat="someObject in (someObjects | secondFilter : firstParam : secondParam)"></tr> 

Aber wenn die Seite geladen wird, es gibt mir den Fehler:

Unknown provider: secondFilterFilterProvider 

Ich könnte bei Bedarf die vollständige Fehlermeldung schreiben. Warten auf jede Hilfe, danke!

+0

Sie haben einen Syntaxfehler. Es gibt ein zusätzliches '}' im ersten Filter. –

+0

@Amir Es tut mir schrecklich leid, das war ein Fehler, als ich die ganze Logik weggeschnitten habe. Jetzt gibt es keine zusätzlichen}, aber ich habe den gleichen Fehler. –

+0

Ich sehe hier keine Probleme. https://plnkr.co/edit/1rRBO5pN5rOvnuPNvjCK?p=preview vielleicht habe ich etwas geändert .. idk –

Antwort

0

Es ist, weil die Funktion Rückkehr durch einen Filter, um nur die Eingabe in Parameter nehmen andere Parameter übergeben Sie so etwas wie tun:

angular.module('myModule') 
     .filter('secondFilter', function (firstParam, secondParam) { 
      return function (input) { 
       return input; 
      } 
     }); 

und Sie es wie folgt in Ihrem Code aufrufen können:

<tr ng-repeat="someObject in someObjects | filter:secondFilter(firstParam, secondParam)"></tr> 
+0

Vielen Dank, es ist eine großartige Idee! Unglücklicherweise scheint es, dass es nicht funktioniert: c Vielleicht kann dieser Punkt hilfreich sein: Ich benutze diesen Filter anstelle von limitTo (ich soll dort eine benutzerdefinierte Logik hinzufügen). Also zuvor hat dieser Code limitTo benutzt um folgendes zu filtern: limitTo: begin: limit –

+0

ok ich verstehe jetzt wenn du vorher Limit To benutzt. was machst du mir ein vu funktioniert nicht? Der Filter wird nicht aufgerufen oder Sie haben einen Fehler in der Konsole? Ich aktualisiere auch meine Antwort es fehlt am Ende eine Klammer. –

+0

Ich habe beide Probleme) Filter wird nicht aufgerufen, da der Fehler direkt von Anfang an geworfen wird, wenn die Seite versucht, zu laden. –