Как использовать orderBy в AngularJS (1.2) для сортировки, без неполных записей

Итак, я делаю некоторые основные CRUD с AngularJS. Вот мнение:

<table>
    <tr ng-repeat=="person in persons | orderBy:lastName">
        <td>
            {{person.firstName}}
        </td>
        <td>
            {{person.lastName}}
        </td>
        <td>
        </td>
    </tr>
    <tr>
        <td>
            <input ng-model="person.firstName">
        </td>
        <td>
            <input ng-model="person.lastName">
        </td>
        <td>
            <button ng-click="save(person)">Save</button>
        </td>
    </tr>
</table>

Проблема заключается в том, что когда вы вводите нового пользователя во входные данные, позиция этой строки перемещается туда, где он соответствует алфавиту. Очевидно, что я хочу, чтобы это произошло, но только тогда, когда пользователь закончил печатать и нажал "сохранить".

1 ответ

Вы должны обновить привязку переменной видимости на размытие, для этого вы должны посмотреть на ng-model-options

Я бы посоветовал вам пойти на ng-model-options="{ updateOn: 'blur' }" для поля, которое упоминается в фильтре orderBy

<input ng-model="person.lastName" ng-model-options="{ updateOn: 'blur' }>

Заметка

Для этого нужно обновить угловой до 1,3 +

Другие вопросы по тегам