1

私はng-classで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 '';
    }
}

sort 関数のコードは次のとおりです。

$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();
};

基本的に、デフォルトでは UserName の昇順でソートされます。ソート ヘッダーをクリックすると、onSort 関数が呼び出され、ソート基準が変更され、サービスから新しい結果が取得されます。

4

0 に答える 0