Подтвердить что ты не робот

AngularJS - Как заказатьПрименение значения объекта, подобного массиву, в ng-repeat

У меня есть объект, который выглядит так:

{
    "03" : "Apple",
    "02" : "Banana",
    "01" : "Cranberry"
}

и он заказывает его клавишами (что имеет смысл) в моем ng-повторе. Это приводит к тому, что ярлыки выходят из алфавитного порядка (сначала "клюква" ). Как сделать так, чтобы он заказывал мой ретранслятор по значениям (в алфавитном порядке)?

Я могу предоставить его в том порядке, в котором я хочу ng-repeat, но он сортирует его по ключу. Если бы я мог сделать это не так, это тоже сработало бы.

4b9b3361

Ответ 1

Для сортировки массива в ngRepeat вы можете использовать orderBy filter, но он работает только с массивами, поэтому вы должны использовать массив в ngRepeat.

В контроллере будет что-то вроде этого:

$scope.myData = [
    {
        key:    "01",
        value:  "Cranberry"
    },
    {
        key:    "02",
        value:  "Banana"
    },
    {
        key:    "03",
        value:  "Apple"
    }
];

и в html:

<div class="item" ng-repeat="item in myData|orderBy:'value'">{{item.value}}</div>