2016-11-23 10 views
1
$scope.searchObject = { 
    from: 0, 
    hydrate: false, 
    size: 12, 
    sort: 'timestamp:desc' 
}; 

$scope.sort = function(a) { 
    var ascend = a + ':' + 'asc'; 
    var descend = a + ':' + 'desc'; 
    if ($scope.searchObject.sort === ascend) { 
    $scope.searchObject.sort = descend; 
    } 
    if ($scope.searchObject.sort === descend) { 
    console.log('is desc') 
    $scope.searchObject.sort = ascend; 
    console.log('sort : ', $scope.searchObject.sort) 
    } else { 
    $scope.searchObject.sort = descend; 
    } 
}; 
<div class="sort-info"> 
    <label>Sort:</label> 
    <a class="sort-item" ng-click="sort('timestamp')"> Date 
     <div class="sort-arrow" > 
     <i ng-show="searchObject.sort === 'timestamp:asc'" class="fa fa-caret-down"></i> 
     <i ng-show="searchObject.sort === 'timestamp:desc'" class="fa fa-caret-up"></i> 
     </div> 
    </a> 
    <a class="sort-item" ng-click="sort('followers')">Followers 
    <div class="sort-arrow"> 
     <i ng-show="searchObject.sort === 'followers:asc'" class="fa fa-caret-down"></i> 
     <i ng-show="searchObject.sort === 'followers:desc'" class="fa fa-caret-up"></i> 
    </div> 
    </a> 
</div> 

動作していないトグル、それはASCに戻りません。条件がトリガーされ、検索オブジェクト内の適切なソートがconsole.logに記録されますが、ビューは変更されません。角度ソートが正しく

+0

はあなたのバグを実証plunkerを提供することができますが必要ですか? – JimmyBob

答えて

3

else if

$scope.sort = function (a) { 
    var ascend = a + ':' + 'asc'; 
    var descend = a + ':' + 'desc'; 
    if ($scope.searchObject.sort === ascend) { 
     $scope.searchObject.sort = descend; 
    }else if ($scope.searchObject.sort === descend){ 
     console.log('is desc') 
     $scope.searchObject.sort = ascend; 
     console.log('sort : ', $scope.searchObject.sort) 
    } 
    else { 
     $scope.searchObject.sort = descend; 
    } 
    }; 
関連する問題