【问题标题】:AngularJS: Using 'track by' disables filter in ng-repeatAngularJS:使用“track by”禁用 ng-repeat 中的过滤器
【发布时间】:2014-07-09 06:54:16
【问题描述】:

由于我在ng-repeat 中实现了track by,它阻止了我的过滤器执行。例如,track by $index 就像一个魅力,但是当我尝试添加一个输入字段来搜索我的对象时,什么也没有发生,控制台也没有显示任何错误。

这是我的html:

<input type="text" ng-model="searchText">
<div ng-repeat="message in messages.collection track by $index | filter : searchText">
  <p>{{message.text}}</p>
</div>

我还创建了一个Plunkr 来显示这两种情况(有和没有track by)。

我想知道是语法问题还是其他什么问题,以便解决。

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

您需要在表达式末尾添加track by。看到这个工作plunkr

代码:

<div ng-repeat="message in messages.collection | filter : searchText track by $index">
    <p>{{message.text}}</p>
</div>

【讨论】:

    【解决方案2】:

    请尝试通过过滤器进行跟踪

    message in messages.collection  | filter : searchText track by $index
    

    正如https://docs.angularjs.org/api/ng/directive/ngRepeat所建议的那样

    最好的

    【讨论】:

    • 感谢您的意见!
    猜你喜欢
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    相关资源
    最近更新 更多