2014-10-06 44 views
2

我有對象的簡單數組:Angularjs - 簡單的NG-重複排序依據過濾器不會工作

$scope.asd = [{"approved":true,"id":"542fb8972be5b5cc4356dd51","username":"k"}, 
{"approved":false,"id":"542fbea3bae6fe4449c838d5","username":"tototod"}, 
{"approved":false,"id":"54324929afafdb92209b2474","username":"asdasd"} 
]; 

然後在視圖我想打印的價值觀和排序依據ID或用戶名是這樣的:

<div ng-repeat="row in asd | orderBy:username:reverse"> 
{{row.username}} 
</div> 

OR

<div ng-repeat="row in asd | orderBy:id:reverse"> 
    {{row.id}} 
    </div> 

但它不工作,也可以是什麼?

我沒有控制檯的錯誤,我只是跟着指南這裏:https://docs.angularjs.org/api/ng/filter/orderBy

appriciated任何幫助,感謝

+0

'reverse'是可選的 - 你可以放棄它 – Grundy 2014-10-06 10:33:10

+0

@Grundy如果他真的想要顛倒順序! – Yoshi 2014-10-06 10:33:34

+0

@Yoshi是的,但在OP沒有足夠的信息:-) – Grundy 2014-10-06 10:34:30

回答

4

在你的例子usernameid應該被引用!該表達式必須求值爲一個將用於查找對象屬性的字符串。請再次參考文檔,您將看到predicate是一個可解析爲字符串值的變量。

解決方案:

<div ng-repeat="row in asd | orderBy:'username':true"> 
    {{row.username}} 
</div> 

此外,reverse應評估爲布爾表達式。

爲您的數據工作fiddle

+0

天哪真棒它的作品! – sbaaaang 2014-10-06 10:38:03

+0

沒問題,只要注意什麼是表達式或什麼是變量。這樣你會避免很多頭痛。 – 2014-10-06 10:39:11

+0

是啊謝謝你,我沒有注意到引號:D你救了我的一天謝謝 – sbaaaang 2014-10-06 10:40:03