ng重复:使用$ index跟踪时过滤器不起作用

时间:2015-04-19 00:12:24

标签: javascript angularjs

这是我的HTML

<body>
<div ng-app="repeatdemo" ng-controller="rd">
<input type="text" ng-model="nameSearch" />
<div ng-repeat="x in names track by $index | filter : nameSearch">
{{x }}
</div>
</div>

这是我的剧本

<script>
var rdapp=angular.module("repeatdemo",[]);
rdapp.controller("rd",function($scope){
$scope.names=['deepu','vicky','hello','hey','vickys'];

});
</script>

当我使用$index in repeat选项跟踪时,过滤器无效 请检查this fiddle并尝试删除track by index

中的ng-repeat

2 个答案:

答案 0 :(得分:9)

问题是您在

中应用过滤器和轨道的顺序

http://jsfiddle.net/n3xnzvvs/1/

<div ng-repeat="x in names | filter : nameSearch track by $index">

答案 1 :(得分:5)

如果您查看ngRepeat的文档,请在ngRepeat参数的说明中找到:

  

例如:项目中的项目filter:searchText track by item.id是一种模式,可用于将过滤器与跟踪表达式一起应用于项目。

ng-repeat指令的代码应如下所示:

<div ng-repeat="x in names | filter: nameSearch track by $index">