У меня возникли проблемы с объединением привязки foreach с сортировкой. У меня есть список так:
<article data-bind="foreach: widgets">
Виджеты - это простой obvservable массив:
var widgets= ko.observableArray();
Это работает красиво, давая мне список моих "виджетов". Если я добавлю новый "виджет" в этот список, он будет динамически отображаться в списке посредством привязки данных.
Однако, как только я добавлю сортировку в массив:
<article data-bind="foreach: widgets.sort(function (left, right) { return left.order() == right.order() ? 0 : (left.order() < right.order() ? -1 : 1); })">
Затем новые добавленные виджеты больше не отображаются в моем списке - если я не перезагружу страницу. (Сортировка прекрасно работает на этом этапе - если я обновляю поле "порядок", которое я сортирую, элементы в моем списке динамически пересортируются).
Как я могу заставить сортировку хорошо играть с динамическим обновлением новых элементов в моем наблюдаемом массиве?
Я использую Breezejs для получения моих данных, однако я не думаю, что это влияет на этот сценарий.