2016-02-26 52 views
0

我有一個使用ng-repeat迭代的對象數組。如何停止ng-repeat重新排序數組中的項目

這裏是我的模型

var myArray =[{$$hashKey: "object:2",name:"A"},{$$hashKey: "object:1",name:"B"}] 

這是我的HTML標記。我也有下面給出的orderby作爲其predicate爲空字符串""

<div ng-repeat="ob in myArray | orderBy:predicate:reverse">{{ob.name}}</div> 

,我希望它在順序A,B顯示的名稱。

但它實際上是按照hashkey的順序將dom渲染爲B,A。我該如何避免這種情況?

+0

不加'id'到現場'myArray'這將是唯一的字段和再申請'orderBy'過濾過的是'id'(唯一)屬性 –

+0

{{model.name}}
id或Propety – Prasad

+0

@PankajParkar我無法修改數組,因爲它已從後端以該形式發送 –

回答

0

ng-repeat by order by index。總是。你在這裏做錯了什麼;) 如果我使用你的代碼,它會按預期顯示A,B。除非你使用一些完全舊的角度版本(你正在使用哪一個?),你在其他地方做錯了什麼。請張貼更多的代碼。

+0

Angular 1.3.16已被使用,我會嘗試重現與同一個對象 –

0

我想我明白你的問題。

它不按hashkey的順序顯示。它只是按照接收數據的順序來轉儲數據。您的問題是predicate您的對象中沒有名爲謂詞的屬性。所以你的條件"ob in myArray | orderBy:predicate:reverse"沒有命名。

爲了通過名稱訂購,你必須使用

"ob in myArray | orderBy:'name'"