gpt4 book ai didi

angularjs - Angular 模板 : Loop over object, 按值排序

转载 作者:行者123 更新时间:2023-12-03 07:02:23 25 4
gpt4 key购买 nike

我有一个 javascript 对象,我想以 Angular 循环。对象中的键是名称,值是排名。我想按排名对元素进行排序。我尝试了这个,但没有成功:

ng-repeat="(name, rank) in topCategories | orderBy: '-rank'"

我也尝试过在“rank”一词周围不使用单引号。结果是元素被循环但未排序。没有记录错误。迭代对象时是否可以排序?

示例数据源:

{
foo: 5,
bar: 7,
baz: 42
}

编辑检查源代码后,很容易看到如果提供的参数是对象而不是数组,则 orderBy 过滤器只是立即返回。 https://github.com/angular/angular.js/blob/master/src/ng/filter/orderBy.js#L68

最佳答案

将数据结构化为对象总是让我很难重复。我总是需要首先将其转换为对象数组。而不是将您的数据设置为:

{
foo: 5,
bar: 7,
baz: 42
}

尝试将其作为对象数组来执行:

[
{name: 'foo', rank: 5}
{name: 'bar', rank: 7}
{name: 'baz', rank: 42}
]

那么你的 html 就很简单了:

ng-repeat="result in topCategories | orderBy: '-rank'"

<强> Plunker Example

来源:

Google Groups: Order by object?

Orderby not working with dict syntax on ng-repeat

Has been previously addressed as an issue .

消息来源称 orderBy 需要一个对象数组

关于angularjs - Angular 模板 : Loop over object, 按值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com