Unbekannter Anbieter für benutzerdefiniertes Filter Ionic / AngularJS

8

Ich versuche, einen benutzerdefinierten Filter zu implementieren, aber ich erhalte den folgenden Fehler:

  

Fehler: [$ injector: unpr] Unbekannter Provider: removeCharsFilterProvider & lt; -   removeCharsFilter

Die Struktur meines Projekts ist wie folgt ...

app.js:

%Vor%

myController.js:

%Vor%

removeCharsFilter.js:

%Vor%

myView.html:

%Vor%

index.html

%Vor%

Ich habe keine Ahnung, warum das so ist. Soweit ich weiß, soll das funktionieren. Kannst du etwas sehen, das mir fehlt?

    
Tiwaz89 27.10.2015, 07:46
quelle

2 Antworten

7

Zunächst müssen Sie keine Filter in den Controller injizieren. Sie sind der Teil der Haupt-App und können mit $filter service in jedem Controller verwendet werden.

  

Filter sind keine unabhängigen Singleton-Objekte   als eine Abhängigkeit einschließen.

Da Sie es zur Steuerung hinzugefügt haben, sucht es nach Service oder Fabrik, die ein Singleton sind und folglich einspritzen müssen. Aber in Ihrem Fall haben Sie einen Filter, keinen Service.

Entfernen Sie zuerst removeChars vom Controller. es gibt Ihnen $ Einspritzventilfehler, weil es Service oder Fabrik sucht, die nicht dort ist. Verwenden Sie bleow way, wenn Sie Filter in Controllern verwenden möchten.

%Vor%

Wenn Sie einen Filter in der Ansicht verwenden möchten, brauchen Sie seine Abhängigkeit nicht zu verwalten, sondern verwenden Sie direkt in der Ansicht, so wie Sie sie verwenden.

Daher ist Schlussfolgerung,

  1. Filter können nicht als Abhängigkeit für den Controller geladen werden, da sie nicht Singleton sind.

  2. Der Filter kann im Controller mit $ filter

  3. verwendet werden
  4. In der Ansicht können sie direkt auf Daten angewendet werden, indem Sie | pipe separator

  5. verwenden

Hoffe, das hilft!

    
Anand G 27.10.2015, 08:07
quelle
0

Sie haben diesen Fehler, weil Sie den $ Injektor falsch benutzen, nach dem D.I. Dokumentation von AngularJS Wenn Sie einen Filter außerhalb der Ansicht benötigen, müssen Sie das Filter Suffix an Ihre Abhängigkeit anhängen, dies sagt dem $ injector, dass Sie einen Filter brauchen!

%Vor%

Eine weitere Möglichkeit, einen Filter einzufügen, wie in den vorherigen Kommentaren beschrieben, besteht darin, Ihren Filter beim $ filter -Dienst anzufordern.

    
Hitmands 27.10.2015 08:16
quelle

Tags und Links