在下拉列表中选择选项之前订购数据

时间:2015-07-27 12:12:48

标签: javascript html angularjs

我有一个下拉列表,其中包含您可以在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上搜索答案,但一直找不到。

1 个答案:

答案 0 :(得分:0)

假设以下是sortOrder模型中的值:

$scope.options = [
    {
        name: 'Name'
        value: 'name'
    },
    {
        name: 'Address'
        value: 'address'
    }
];

其中nameaddressworlds模型的属性。

这会照顾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属性。