3

我在我的數據模型中使用predicate來輕鬆地sort items。現在我工作在一個向上和向下箭頭圖標將顯示其狀態的排序是目前如何使用ng-toggle和ng-class在使用ng-click時更改圖標:謂詞

謂詞排序依據的例子在行動:http://plnkr.co/edit/?p=preview

enter image description here

不知道如何切換然而內謂詞那些值:

<button type="button" 
     class="btn btn-default" 
     ng-click="predicate = 'added_epoch'; reverse=!reverse;"> 
     <div ng-class="recentAdded == 'up' ? 'iconUpBig' : 'iconDownBig'"></div> 
     Recently added 
</button> 

控制器

$scope.recentAdded = 'up' 

我在這裏沒有使用函數,這就是爲什麼現在看到如何切換它有點困難。


有沒有辦法掛接到這一點,並改變recentAdded變種?
這將inturn改變ng-class

ng-click="predicate = 'added_epoch'; reverse=!reverse;" 

然後基於謂詞,切換ng-class

ng-class="recentAdded == 'up' ? 'iconUpBig' : 'iconDownBig'" 
+0

什麼是你不使用範圍函數的原因? – SethGunnells

+0

'predicate ='語法使得根據'ng-repeated'項目中的不同值對項目進行排序變得非常容易。我沒有創建一個函數...現在範圍增加 –

+0

plunker鏈接似乎不正確 – scniro

回答

3

我只想補充一個範圍功能。你不想在你的標記中加入太多的邏輯,以至於很難看到發生了什麼。

// could accept a predicate using a parameter 
$scope.toggleSort = function() { 
    // whatever other logic you need 
    if ($scope.recentAdded === 'up') $scope.recentAdded = 'down'; 
    else $scope.recentAdded = 'up'; 
}; 
+0

嗯,好吧,我只是做了一個測試..我可以鏈接一個'toggleSort'函數到'ng-click'中,邏輯非常簡單,只有4個按鈕,看起來可能太多了,現在就試試這個。 –

+0

謝謝:)'ng-click =「predicate ='added_epoch'; reverse =!reverse; toggleSort('recent')」'然後我使用switch語句來改變4個不同的'ng-class'排序變量。 –