我有一系列联系人, 我的对象看起来像:
{"active":false,"lastName":"fdg","name":"riman","table":3}....
我可以看到所有项目,但过滤器不起作用,我的模板是:
<ion-header-bar class="bar-subheader item-input-inset">
<label class="item-input-wrapper">
<i class="icon ion-ios7-search placeholder-icon"></i>
<input type="search" placeholder="Search" ng-model="searchText">
</label>
<button class="button button-clear" ng-click="searchText =''">
Cancel
</button>
</ion-header-bar>
<ion-content>
<ul class="list item-icon-right">
<li class="item row" ng-repeat="(tel, contact) in contacts | filter:searchText">
更新
我的代码是针对firebase:
$scope.contacts = {};
$scope.data = $firebaseObject(ref);
$scope.data.$loaded()
.then(function () {
$scope.contacts = $scope.data.contacts;
})
答案 0 :(得分:1)
如果有帮助,请查看此plunkr
Plunkr for filter
我添加了类似的东西:
<li class="item row" ng-repeat="(tel, contact) in contacts | filter:searchText">
{{contact.lastName}}
</li>
答案 1 :(得分:0)
如果您是对象的过滤器,则需要指定属性
<li class="item row" ng-repeat="(tel, contact) in contacts | filter: {name: searchText}">
您可以为过滤器添加更多字段
ng-repeat="(tel, contact) in contacts | filter: {name: searchText, lastName: searchText}"
答案 2 :(得分:0)
将searchText变量包装在对象中:
$scope.search = {text: ""};
然后引用它。基元不会沿着范围传播。
答案 3 :(得分:0)
解决问题。 ng repeat将起作用但是ng过滤器不能过滤具有数组的对象,它应该是一个对象数组。