我有一个 ng 类的 ng-repeat。getClass(item) 根据存储在范围中的数组评估行中的项目。如果该项目存在于数组中,则为其分配一个类。
我有一个排序功能,可以使用带有服务器调用的服务进行排序。刷新后 ng-class 不再评估
这是中继器:
<tr ng-repeat="item in set" ng-class="getClass(item)" ng-click="selectItem(item,$event,$index)" ng-dblclick="details(item)">
<td ng-repeat="column in columns">{{item[column.value]}}</td>
</tr>
这是getClass:
getClass = function(item){
if ($.inArray(item,scope.selectedItem)>-1){
return 'ts-li-selected';
} else {
return '';
}
}
这是排序函数的代码:
$scope.filterCriteria = {
sortDir:'asc',
sortedBy:'UserName'
};
$scope.fetchResult = function(){
$scope.users = User.search({sortBy:$scope.filterCriteria.sortedBy,sortDir:$scope.filterCriteria.sortDir})
};
$scope.onSort = function(sortedBy, sortDir) {
$scope.filterCriteria.sortDir=(sortDir)?'asc':'desc';
$scope.filterCriteria.sortedBy=sortedBy;
$scope.fetchResult();
};
基本上,它默认按用户名升序排序。当您单击排序标题时,它会调用 onSort 函数,该函数会更改排序标准并从服务中获取新结果。