Обновление ngRepeat orderBy после обновления ngModel

У меня есть список текстовых полей с кнопкой под ним. Я могу динамически добавлять текстовые поля в этот список с помощью AngularJS.

Текстовое поле по умолчанию имеет пустое значение. Но я хочу заказать позицию элемента списка, как только я обновлю значение этого текстового поля. Но когда я это делаю, orderBy не срабатывает.

Как я могу это сделать?

Вот небольшая демонстрация: http://jsfiddle.net/fqnKt/214/


person Vivendi    schedule 26.09.2014    source источник


Ответы (2)


Я думаю, что это то, что вы хотите:

<div ng-app="myApp">
    <div ng-controller="MyCtrl">
        <ul>
            <li ng-repeat="item in items | orderBy:'name'">
                <input type="text" ng-model="item.name" /> {{item.name}}
            </li>
        </ul>
        <input ng-model="newItem" type="text"></input>
        <button ng-click="add(newItem)">Add</button>
    </div>
</div>

Рабочий пример

person Josep    schedule 26.09.2014

Я просто хотел конкретно отметить, почему пример был неправильным (потому что у меня была та же проблема, хотя я использовал директиву orderBy).

НЕ ИСПОЛЬЗОВАТЬ

track by $index

В вашем ng-repeat

person Samir Seetal    schedule 25.01.2016
comment
У меня была эта проблема. Вроде бы все должно работать, но я оставил там ... трек по object_id. Удалил его, и вся сортировка списка заработала как положено. Спасибо! - person RoboBear; 14.06.2017