Angular: сортировка опций выбора

0

Гигантский массив объектов, на котором я был благословлен, сортируется по его коду, а не по человеческому имени. Я бы хотел, чтобы он показывал дружеские отношения.

portsService:

    var _getPorts = function (){
        return _portList;
    }

    var _portList = [{
            "code": "0101",
            "portOfEntry": "Portland, ME"
        }, {
            "code": "0102",
            "portOfEntry": "Bangor, ME"
        }, {
            "code": "0103",
            "portOfEntry": "Eastport, ME"
        }, {
            "code": "0104",
            "portOfEntry": "Jackman, ME"
        }, ...

контроллер:

    vm.getPortsSelect = function () {
        vm.ports = portsService.getPorts();
    };

Посмотреть:

<select 
        ng-model="adminManifestVm.Manifest.usPortOfArrival"  
        ng-options="port.code as port.portOfEntry for port in adminManifestVm.ports"
        name="usPortOfArrival" 
        class="form-control input-inline input-medium" 
        required>
    <option value=""></option>
</select>

Существует множество способов сортировки массива объектов вручную. Есть ли уклон?

Теги:
sorting
drop-down-menu

2 ответа

1
Лучший ответ

Вы можете просто использовать фильтр orderBy

ng-options="port.code as port.portOfEntry for port in adminManifestVm.ports |  orderBy:'code'"

DEMO APP

  • 0
    Ах! Я попробовал это, но пропустил одинарные кавычки!
  • 1
    Да. Спасибо. Помечено как ответ.
Показать ещё 1 комментарий
1

Да, угловой способ - использовать filter. В этом случае фильтр orderBy так:

<select ng-model="adminManifestVm.Manifest.usPortOfArrival"  
    ng-options="port.code as port.portOfEntry for port in adminManifestVm.ports | orderBy: 'code'"
    name="usPortOfArrival" 
    class="form-control input-inline input-medium" 
    required>
    <option value=""></option>
</select>

Вот использование из документации orderBy:

{{ orderBy_expression | orderBy: expression: reverse: comparator}}

Как вы можете видеть, также можно отменить порядок с помощью обратного булева. Выражение также может быть необязательно префикс + или - для управления направлением сортировки, восходящим или нисходящим. Например, "+code" или "-code" в этом случае.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню