重复组错序
ng repeat groups misordered
我有一个已按下划线分组的组对象,该对象正是我喜欢的排序方式。但是当我在页面中输出组对象时,顺序是错误的。
参见fiddle:
http://jsfiddle.net/pbxaD/44/
$scope.groups = {"Day 1":[{"category":"Flight"},{"category":"Others"}],"Day 2":[{"category":"Train"}],"Day 3":[{"category":"Flight"}],"Day 18":[{"category":"Car"}],"undefined":[{"category":"Flight"}]};
正确的应该是:Day 1, Day 2, Day 3, Day 18, undefined
但输出变为:第 1 天、第 18 天、第 2 天、第 3 天,未定义
有什么建议吗?
javascript 中的对象与数组不同,没有排序。如果您想保持目前的数据结构,最好的办法是像 Dmitri Algazin 评论的那样编写一个自定义过滤器。如果您可以处理结构的轻微变化,请检查以下 fiddle:
https://jsfiddle.net/pbxaD/47/
$scope.groups = [
{
day: "Day 1",
categories:["Flight","Others"]
},
{
day: "Day 2",
categories: ["Train"]
}, // etc
]
这是 angularjs
版本 1.2 和 1.3 的默认行为。但是,此行为已在 angular 1.4.
中删除
我用 angular 1.4 更新了 link 作为外部资源,它如您所愿地工作
默认情况下 javascript 对象键按升序检索。在您订购比较两个字符串的情况下。所以字符串比较 'b'
明显大于 'ab'
。所以在你的情况下 'Day 18'
实际上少于 'Day 2'
。这就是 'Day 18' 出现在 'Day 2' 之前的原因。
这是你可以看到的字符串比较规范 click here
您可以使用自定义过滤器来更改订单。
我有一个已按下划线分组的组对象,该对象正是我喜欢的排序方式。但是当我在页面中输出组对象时,顺序是错误的。
参见fiddle: http://jsfiddle.net/pbxaD/44/
$scope.groups = {"Day 1":[{"category":"Flight"},{"category":"Others"}],"Day 2":[{"category":"Train"}],"Day 3":[{"category":"Flight"}],"Day 18":[{"category":"Car"}],"undefined":[{"category":"Flight"}]};
正确的应该是:Day 1, Day 2, Day 3, Day 18, undefined 但输出变为:第 1 天、第 18 天、第 2 天、第 3 天,未定义
有什么建议吗?
javascript 中的对象与数组不同,没有排序。如果您想保持目前的数据结构,最好的办法是像 Dmitri Algazin 评论的那样编写一个自定义过滤器。如果您可以处理结构的轻微变化,请检查以下 fiddle:
https://jsfiddle.net/pbxaD/47/
$scope.groups = [
{
day: "Day 1",
categories:["Flight","Others"]
},
{
day: "Day 2",
categories: ["Train"]
}, // etc
]
这是 angularjs
版本 1.2 和 1.3 的默认行为。但是,此行为已在 angular 1.4.
我用 angular 1.4 更新了 link 作为外部资源,它如您所愿地工作
默认情况下 javascript 对象键按升序检索。在您订购比较两个字符串的情况下。所以字符串比较 'b'
明显大于 'ab'
。所以在你的情况下 'Day 18'
实际上少于 'Day 2'
。这就是 'Day 18' 出现在 'Day 2' 之前的原因。
这是你可以看到的字符串比较规范 click here
您可以使用自定义过滤器来更改订单。