2017-01-31 4 views
0

Ich habe ein Array von Objekten, die mit AngularJS an meinen HTML-Code gebunden sind. Wenn auf eine Schaltfläche geklickt wird, möchte ich den Inhalt des Arrays filtern und nur bestimmte Elemente im Array anzeigen. Jedes Element im Array hat mehrere Eigenschaften und ich möchte nach der Eigenschaft "mapid" filtern. Hier ist mein Code:Angular JS Filter in JavaScript

Kartenansicht:

<span ng-class="mapArray[0]" ng-click="MapView(0)" class="active">All Maps</span> | 
<span ng-class="mapArray[1]" ng-click="MapView(1)">Public Art</span> | 
<span ng-class="mapArray[2]" ng-click="MapView(2)">City of Houston</span> | 
<span ng-class="mapArray[3]" ng-click="MapView(3)">Gallery Guide</span></p></div> 
var listingsApp = angular.module('listingsApp', []); 

listingsApp.controller('pageController', function ($scope, $sce, $filter, $http, $log, $compile) { 

$scope.MapView = function (mapviewid) { 
    $scope.mapviewid = mapviewid; 
    $scope.mapListings = $filter('mapfilter')($scope.allListings, { mapid : mapviewid }) 
} 

}) 

ich einen [$ Injektor: UNPR] Fehler mit diesem Code angular.min.js: 117 Fehler: [$ Injektor : UNPR] http://errors.angularjs.org/1.5.7/ $ Injektor/UNPR p0 = mapfilterFilterProvider% 20% 3C-% 20mapfilterFilter

Link zum Controller: https://jsfiddle.net/jpking72/7woyjs67/

+1

, dh nicht als Abhängigkeit zu Ihrem Modul deklarieren, wo hast du 'mapfilter erklären 'und was ist der Code/die Deklaration deines Controllers? – Derlin

+0

Was sagt der Rest des Fehlers? Name des Anbieters sollte ein großer Hinweis sein – charlietfl

+0

Zeigen Sie uns Ihren Controller – Kenny

Antwort

0

Es kann sein, Sie mapfilter nicht definiert haben, oder mapfilter in einem Modul definiert Sie

module('myapp', []).filter('mapfilter', function(){ ... }) 

oder

module('myapp', ['moduleWithMapFilter']) 
+0

wird nicht '[$ injector: unpr]' Fehler erhalten, wenn Sie vergessen, etwas zu injizieren, nur wenn Sie etwas injizieren, das nicht verfügbar ist – charlietfl

+0

Sie haben Recht, danke! – Derlin

+0

Diese Antwort ist korrekt. Sie versuchen, den Filter mit dem Namen mapfilter zu verwenden, aber (zumindest in Ihrer Frage) ist nicht klar, dass der Filter verfügbar ist – devqon