2013-12-16 76 views
5

我有在控制器的陣列如下如何扭轉角JS陣列而不創建濾波器

function FooController($scope) { 
    $scope.items = ["a","b","c"]; 
} 

我用NG-重複顯示在items數據,

<div ng-app> 
    <div ng-controller="FooController"> 
     <ul ng-repeat="item in items"> 
      <li>{{item}}</li> 
     </ul> 
    </div> 
</div> 

我得到的結果爲A,b,C的順序。我想表明它以相反的順序。這意味着C,B,一個無無創建過濾器在控制器或改變其順序。怎麼做? 選中此link

回答

7

爲了避免寫入自定義過濾器,我建議指示您使用以下語法:

<ul ng-repeat="item in items | orderBy:'-toString()'"> 

該文檔假定您對對象數組進行排序,但在您的情況下只有普通字符串。

2

裹的字符串對象,並使用排序依據,或創建一個新的過濾器:

angular.module("app",[]) 
.filter("reverse", function(){ 
    return function(items){ 
     return items.slice().reverse(); // Create a copy of the array and reverse the order of the items 
    }; 
}); 

而且使用這樣的:

<ul ng-repeat="item in items|reverse"> 

Updated fiddle(我還更新了ng-app指令,因此它通過了「app」模塊。)

+0

我保存在我的'我items'使用'items.slice()反();'現在它的扭轉相當不錯。 –

14

我面臨同樣的問題,但與對象的數組。這種快速解決方案爲我工作,但使用的過濾器是最好的做法。 。

data-ng-repeat="item in items.slice().reverse()"

http://bootply.com/SgVBZvZ708

+3

反向()是土生土長的javascript函數...爲什麼你認爲這是一個「骯髒的解決方案」? – sports