wake-up-neo.net

$ filter ist keine Funktion AngularJS

app.controller('myController', ['$scope', '$http', '$filter', function($scope, $http, $filter) {

Das Obige ist ein Beispiel für meinen Code, bei dem ich versuche, $http.get und auch $filter in meiner controller zu verwenden.

Das einzige Problem ist, wenn ich es so verwende, das Konsolenprotokoll gibt einen Fehler aus, der $filter is not a function sagt. 

app.controller('myController', ['$scope', '$http', '$filter', function($scope, $filter, $http) {

Wenn ich sie austausche, wird ein Fehler ausgegeben, der $http is undefined

12
ngplayground

Wenn Sie verwenden

app.controller('myController', ['$scope', '$http', '$filter', function($scope, $filter, $http) {

die Variable $filter ist tatsächlich eine Instanz von $http und $http ist eine Instanz von $filter. Eigentlich spielt es keine Rolle, was in function(...) params geschrieben wird.

Was hier wichtig ist, ist zum Beispiel die Reihenfolge der verwendeten Injektionsmittel 

app.controller('myController', ['$scope', '$http', '$filter', function(a, b, c) {

wird den Instanzen zugeordnet:

  • ein -> Umfang
  • b -> $ http
  • c -> $ filter

Aus eckigen Dokumenten:

Da Angular die Abhängigkeiten des Controllers von den Namen der Argumente zur Konstruktorfunktion des Controllers leitet, wenn Sie den JavaScript-Code für den PhoneListCtrl-Controller minimieren, werden auch alle seine Funktionsargumente und der Abhängigkeitsinjektor reduziert wäre nicht in der Lage, Dienste korrekt zu identifizieren.

Wenn Sie also die Array-Notation für Ihren Controller verwenden, stellen Sie sicher, dass der Code funktioniert, nachdem der Code minimiert ist.

24
domakas

add filter nach http und angle version verteidigt auch, wie Sie filter verwenden werden. 

     plateFormController.$inject = ['$scope', '$http',
    '$filter','$timeout', '$q', '$mdSidenav', '$log'];



function plateFormController($scope, $http,$filter, $timeout, $q) {
          jsonByName=$filter('filter')($scope.json, { name: 'a' });
        }
1
Gajender Singh

In meinem Fall ist das erwartete Datenlistenobjekt null, indem sichergestellt wird, dass das erwartete Listenobjekt nicht null ist. Ich kann diesen Fehler vermeiden. 

0
Ravi