gpt4 book ai didi

AngularJS - ng-repeat按键时的orderBy值,值对

转载 作者:行者123 更新时间:2023-12-05 00:41:15 25 4
gpt4 key购买 nike

我用lodash中的countBy函数统计了一组数据中每一项的出现次数,结果是这样的:

$scope.colors= {
"Orange": 3,
"Blue": 2,
"Pink": 1,
"Red": 1,
"Black": 2,
};

现在我想显示数据并按其值排序。我试过了

<div ng-controller="myCtrl" ng-app="myApp">
<ul>
<li ng-repeat="(key,value) in colors | orderBy:value">
{{key}} ({{value}})
</li>
</ul>
</div>

但是 orderBy 过滤器似乎并不能解决问题(请参阅 plunkr here)

有没有办法用当前的数据形式来做,或者是更好的方式来构造数据以达到预期的结果?提前致谢!

最佳答案

作为 the documentation说,orderBy 期望一个数组作为输入,而不是一个对象。一般来说,虽然它受到支持,但我从未遇到过使用带有 ng-repeat 的对象是个好主意的用例。

只需将您的对象转换为数组:

$scope.colors = [];
angular.forEach(occurrences, function(value, key) {
$scope.colors.push({
color: key,
count: value
});
});

然后使用

<li ng-repeat="element in colors | orderBy:'count'">
{{ element.color }} ({{ element.count }})
</li>

查看您的 updated plunkr .

关于AngularJS - ng-repeat按键时的orderBy值,值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631558/

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