Javascript 如何订购ng重复项目?
选择的“我的选项”对象如下所示:Javascript 如何订购ng重复项目?,javascript,angularjs,Javascript,Angularjs,选择的“我的选项”对象如下所示: { 3 : 'c', 5 : 'a', 6 : 'b', ... } <option ng-repeat="(k,v) in field.options" value="{{k}}">{{v}}</option> 我的重复是这样的: { 3 : 'c', 5 : 'a', 6 : 'b', ... } <option ng-repeat="(k,v) in fie
{
3 : 'c',
5 : 'a',
6 : 'b',
...
}
<option ng-repeat="(k,v) in field.options" value="{{k}}">{{v}}</option>
我的重复是这样的:
{
3 : 'c',
5 : 'a',
6 : 'b',
...
}
<option ng-repeat="(k,v) in field.options" value="{{k}}">{{v}}</option>
{{v}
我想按值(v)排序,但据我所知,orderBy
仅适用于对象的键,而该键不适用于此格式。如中所述,orderBy
仅适用于数组。因此,您可以将对象转换为数组,只需调用sort()
orderBy还具有一个函数,允许您设置自定义排序。在这种情况下,在将字符串添加到作用域后,我应该可以说
orderBy:String(v)
,但这不起作用。主题外,但如果您不需要每个选项的作用域开销,您可以改用ngOptions
。@adam0101 Angular在我使用ngOptions
时并不总是呈现选项,因为我异步获取select和选项的值。很难解释,但这是最好(唯一)的选择。这很奇怪。我以前异步使用过ngOptions
,没有任何问题。事实上,我确实这样做了,它做到了。问题是重写所有只通过键访问值的代码,因为我现在必须遍历列表来执行等效操作。它仍然很快,但也许我会对数组进行排序并进行二进制搜索?数组看起来像[{k:'key',v:'value'},…]等等]。