2012-01-24 2 views
5

Я пытаюсь сортировать таблицу, созданную из шаблона Knockout.js. Проблема заключается в том, что jquery Tablesorter кэширует все tr. Я знаю о tablesorters .trigger («update»), но я не знаю, где его применять. Я попробовал «afterRender», пользовательские привязки, e.t.c - без каких-либо результатов вообще ... Я сделал jsfiddle, возможно, это очищает вещи:Knockout.js с jQuery tablesorter

Если вы сортируете, не устанавливая некоторые неактивные элементы, все работает. Если вы сначала установили что-то неактивное, а затем отсортировали таблицу, оно снова появится ?!

Update: Хорошо, я влюбился в knockoutjs - СНОВА :) У них есть некоторые аккуратные коммунальные услуги включены, один из них имеет возможность сортировать observableArrays ->http://knockoutjs.com/documentation/observableArrays.html.

ответ

3

Сортировка активных пользователей с использованием sort algoritm. Представление автоматически обновится! Вы не должны взаимодействовать с точки зрения непосредственно как

$("#list1").tablesorter(); 

Но делать Somthing так:

function sortUsers(a,b){ 
    return a.name() < b.name(); 
} 

activeUsers.sort(sortUsers); 
+0

велик, что работал :) –

+0

здесь вы идете! Не забудьте отметить правильный ответ! :) –

+1

Итак, я смущен. Ваш ответ на использование tablesorter с нокаутом - не использовать tablesorter? Я думаю, что OP удовлетворен, но что, если вы хотите использовать tablesorter для других функций (темы, виджеты, группировки и т. Д.)? Это просто несовместимо? – neverfox