Пользовательская привязка нокаута для jQuery UI Sortable - странное поведение

Я использую jQuery Sortable и Knockout для поддержки массива.

http://jsfiddle.net/daniel_white/KrGY8/3/

Обратите внимание, что при перетаскивании элементов они дублируются или исчезают.

Кто-нибудь знает, как я мог это исправить?

2 ответа

Решение

Отображение элементов в KO становится немного запутанным из-за пустых текстовых узлов, когда вы перемещаете вещи с помощью сортируемого пользовательского интерфейса jQuery.

Вы можете удалить текстовые узлы в вашем "шаблоне", например: http://jsfiddle.net/rniemeyer/KrGY8/5/

Или удалите существующий элемент и верните его в нужное место в два этапа (дважды обновив observableArray): http://jsfiddle.net/rniemeyer/KrGY8/4/

Я также написал связывающий плагин для работы с сортируемым jQuery в Knockout, который предоставляет некоторые дополнительные функции здесь: https://github.com/rniemeyer/knockout-sortable

Простой способ обойти эту проблему - сначала очистить ваш связанный observableArray, например так:

list([]);

Затем обновите его с правильным массивом:

list(actualArray);

Проверьте обновленную скрипку

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