2014-03-02 15 views
6

ich habe eine Daten in Feuerbasis wie folgt aus:Filter Firebase Daten AngularJS

firebase_data { 
    -JGc5X37NDuvmJylmx0s: Object { 
     name: 'John Doe', 
     age: 21 
    } 
    -JGnGJlTjyAxFT-Vn48Y: Object { 
     name: 'Jane Doe', 
     age: 22 
    } 
} 

in meinem Controller:

$scope.firebase = $firebase(new Firebase("https://firebase_data.firebaseio.com")); 

meiner Sicht:

<input type="text" ng-model="search" /> 
<ul ng-repeat="(key, value) in firebase | filter:search"> 
    <li><a href="{{ key }}">{{ value.name }}</a></li> 
</ul> 

der Filter funktioniert nicht . Wie kann ich den Filter arbeiten lassen?

+0

Filter funktionieren nur auf Arrays. Schau dir das an ('Wie filtere (Schlüssel, Wert) mit ng-repeat in AngularJs?'] (Http://stackoverflow.com/questions/14788652/how-to-filter-key-value-with-ng -repeat-in-angularjs) für Abhilfe: –

Antwort

10

Verwenden orderByPriority zu Ihrem Objekt Firebase in ein Array umwandeln.

<input type="text" ng-model="search" /> 
<ul ng-repeat="(key, value) in firebase | orderByPriority | filter:search"> 
    <li><a href="{{ key }}">{{ value.name }}</a></li> 
</ul> 
+0

danke. das funktioniert sehr gut – junerey

+0

Heute ist 'orderByPriority' veraltet, oder? Ich habe versucht, dies zu verwenden, aber es funktioniert nicht. – Jobsamuel

+2

In den neuesten Versionen verwenden Sie einfach '$ asArray', das bereits sortierte Werte liefert. – Kato

2

denke ich, Feuerbasis kehrt als Objekt und Filter eckiges nur Arrays filtern und filtert nicht Objekt

Sie benutzerdefinierte Filter und Filter erstellen können. Ich habe beispielsweise für die Verwendung von Feuerbasis Objekt erstellt

http://plnkr.co/edit/tiSsswXQWgAPPv6ozqOm?p=preview

Bitte lassen Sie mich wissen, wenn etwas