【发布时间】:2015-06-10 18:30:30
【问题描述】:
我正在尝试在 div 中实现 ng-repeat 功能。为此,我需要先对数据进行排序(根据对象提供的排名),然后将其命名为 div。所以我正在创建一个自定义 OrderBy 函数。我的排序功能运行良好。但是,我总是得到相同的 div 顺序。 (事实上,与我需要的完全相反)。我尝试使用反向功能,但它不起作用。
我的排序代码如下所示:
var res = {
"Toyota": 2,
"Ford": 1,
"Chrysler": 4,
"Hyundai": 3,
"Nissan": 5
};
sortedVal = Object.keys(res).sort(function (a, b){
return res[a] - res[b];
});
我的 HTML div 看起来像这样,
<div class="card" ng-repeat="name in data | orderBy: sortedVal ">
我在控制台中得到了正确的输出。但是,无论我做什么,div 总是按照下面给出的顺序排列。
日产、克莱斯勒、现代、丰田、福特。
我需要它们的顺序:福特、丰田、现代、克莱斯勒、日产。
注意:不要担心“数据中的名称”部分,它运行良好。我在使用“OrderBy”时遇到问题。
【问题讨论】:
-
sortedVal 不是函数。这是调用 Object.keys(res).sort(...) 的结果:键的排序数组
-
在这种情况下如何通过 orderBy 传递它?
标签: html angularjs angularjs-orderby