ng-repeat with track by和filter and orderBy not working

Pat*_*ckB 24 javascript angularjs angularjs-scope angularjs-ng-repeat

我有这个代码.

http://jsfiddle.net/0tgL7u6e/

JavaScript的

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.nameFilter = '';
    $scope.contacts = [
        {name: 'GHI'},
        {name: 'DEF'},
        {name: 'ABC'},
        {name: 'JKL'}
    ];
}
Run Code Online (Sandbox Code Playgroud)

视图

<div ng-controller="MyCtrl">
    <div><input type="text" ng-model="nameFilter" placeholder="Search..." /></div>
    <p ng-repeat="contact in contacts track by $index | filter: nameFilter | orderBy: name">{{ contact.name }}</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我不知道为什么订单不起作用以及过滤器无法正常工作的原因.

在另一个问题上,我已经读过一些无法过滤或订购对象的内容.但我有一系列上面的对象.它应该工作!?

有什么问题?

Saj*_*ran 58

要使用过滤器跟踪,必须在过滤器后添加跟踪表达式.

<p ng-repeat="contact in contacts | orderBy: 'name' | filter: nameFilter  track by $index">{{ contact.name }}</p>
Run Code Online (Sandbox Code Playgroud)

这是工作 fiddle