我有一个下拉列表,其中包含您可以在HTML中订购数据的选项:
app.activeDocument.multiStateObjects[0].states[0].groups[0].rectangles
此外,我有使用ng-repeat填充数据的代码,并使用sortOrder模型按下拉选项对数据进行排序:
<select ng-model="sortOrder" ng-options="option.value as option.name for item in options"></select>
一切正常,数据按下拉列表中的选项排序,但我想在按下下拉列表中的选项之前按字母顺序排序数据。或者可以默认选择一个选项并对数据进行排序。 我一直在stackoverflow上搜索答案,但一直找不到。
答案 0 :(得分:0)
假设以下是sortOrder
模型中的值:
$scope.options = [
{
name: 'Name'
value: 'name'
},
{
name: 'Address'
value: 'address'
}
];
其中name
和address
是worlds
模型的属性。
这会照顾sortBy
- 您还需要sortIn
功能 - 升序或降序。你使用另一个模型:
$scope.sortAscending = false;
因此,您的选择下拉列表将是:
<select ng-model="sortOrder" ng-options="item.value as item.name
for item in options"></select>
你的重复元素将是:
<div ng-repeat="hello in worlds" | filter:searchQuery |
orderBy:sortOrder:sortAscending"></div>
现在,为了拥有默认的sortBy
,您需要使用相同的引用 - 这样AngularJS将选择值并正确绑定
$ scope.sortOrder = $ scope.options [0] .value;
这会将默认排序顺序设置为name
属性。