AngularJS orderBy不能在ngOptions中跟踪?
我试图通过track by
sortingngOptions
这是我的模板
<select ng-model="asd" ng-options="user.id as user.name for user in users track by user.id | orderBy: 'name'">
这是我的控制器
function AppCtrl($scope) { $scope.users = [ {id : 25, name: 'Batista'}, {id : 26, name: 'Ultimate Warrior'}, {id : 27, name: 'Andre the giant'} ]; $scope.name = 'asdasd'; $scope.asd = 25; }
我在JSBin中写了一个片段来演示这个。 这个问题是sorting不起作用。 我应该写一个自定义filter吗?
为了使用filtertrack by
需要在filter之后添加track by
expression式的track by
。
试试这个:
user.id as user.name for user in users | orderBy: 'name' track by user.id
ngRepeat
的文档在“参数”一节中提到了这一点,具体来说:
在指定跟踪expression式之前,filter应该应用于expression式。
和
例如: item中的项目| filter:searchText track by item.id是一种模式,可能会将跟踪expression式应用于项目的filter。