2016-02-26 62 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'"