我一直在尝试使用ng-options
来显示一个字体数组,这些字体按字母顺序排列,按照数组中项目的值排序。
HTML
<select ng-options="font for font in webfonts | orderBy:'font'" name="fonts">
<option value="">Choose a font</option>
</select>
JS
$scope.webfonts = [
'Abel', 'Crafty Girls' , 'Lato' , 'Average',
'Corben', 'Quicksand', ... ];
我尝试更改orderBy
和其他内容的值。我已经阅读了documentation和所有评论。
我错过了什么?这应该只适用于对象吗?
答案 0 :(得分:49)
这是你需要做的:
<select ng-model="selected" ng-options="font for font in webfonts | orderBy:'toString()' " name="fonts">
toString()
进行排序。由于orderBy
的表达式可以是Getter函数。该函数的结果将使用&lt;,=,&gt;进行排序。操作者。的 Demo 强>
答案 1 :(得分:3)
正如文档所指定的那样,字符串参数用于对象属性,而不是用于基元。我认为,就像它听起来那么基本,你必须在范围上创建一个简单地返回参数的函数,并将其传递给orderBy
。
请参阅jsFiddle!