过滤器不能用于ng-repeat

时间:2016-05-23 15:51:19

标签: angularjs ionic-framework firebase

我有一系列联系人, 我的对象看起来像:

{"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;
            })

4 个答案:

答案 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过滤器不能过滤具有数组的对象,它应该是一个对象数组。