【问题标题】:filter not working on ng-repeat过滤器在 ng-repeat 上不起作用
【发布时间】:2016-05-23 15:51:18
【问题描述】:

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

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

【问题讨论】:

  • 控制台有错误吗?
  • 我在您的对象中看不到 telcontact 属性。你有这些名字的属性,对吧?
  • tel 是关键道具 ID。它不在联系对象中。 firebase 对象的键
  • 控制台没有错误

标签: angularjs ionic-framework firebase


【解决方案1】:

如果有帮助,请查看此 plunkr

Plunkr for filter
我添加了类似的内容:
<li class="item row" ng-repeat="(tel, contact) in contacts | filter:searchText"> {{contact.lastName}} </li>

【讨论】:

  • 当我把你的代码工作,但是当我试图从 Firebase 获取我的数据时它不起作用。见主帖更新
  • 不是 100% 确定,但我看到 $scope.contacts 的初始化是针对对象而不是数组。你认为这会有什么不同吗?
  • nop.same 问题不相关。我想可能是因为数据来自 firebase...
【解决方案2】:

如果你是对象的过滤器,你需要指定属性

 <li class="item row" ng-repeat="(tel, contact) in contacts | filter: {name: searchText}">

您可以为过滤器添加更多字段

ng-repeat="(tel, contact) in contacts | filter: {name: searchText, lastName:  searchText}"

【讨论】:

  • 没有。它不起作用,您不需要指定属性。你可以看到那个角度的例子
【解决方案3】:

将 searchText 变量包装在一个对象中:

$scope.search = {text: ""};

然后引用它。基元不会沿作用域传播。

【讨论】:

  • 我尝试像这样 ng-model="data.searchText" 进行搜索,但它不起作用
  • 您是否也将过滤器和清除按钮更改为使用data.searchText?您能否发布一些代码,以便我更好地查看?
  • 是的,清理按钮正在工作并清理文本。但过滤器没有。过滤器:data.searchText
【解决方案4】:

解决问题。 ng repeat 会起作用,但是 ng filter 不能过滤具有数组的对象,它应该是一个对象数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多