2014-03-02 60 views
6

我有这样在火力数据:在我的控制器过滤火力地堡数据

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

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

我的视图:

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

过滤器是不工作。我如何使过滤器工作?

+0

过滤器仅适用于阵列。看看这个['如何用AngularJs中的ng-repeat过滤(key,value)'](http://stackoverflow.com/questions/14788652/how-to-filter-key-value-with-ng -repeat-in-angularjs)for变通方法: –

回答

10

使用orderByPriority你的火力地堡对象转换为一个数组的例子。

<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

谢谢。这个效果非常好 – junerey

+0

今天'orderByPriority'已被弃用了,对吧?我一直在尝试使用这个,但它不起作用。 – Jobsamuel

+2

在最新版本中,只需使用'$ asArray'已经提供了排序值。 – Kato