2012-01-24 13 views
5

Provo a ordinare una tabella, generata da un modello Knockout.js. Il problema è che jquery Tablesorter tipo di cache tutti i tr. Sono a conoscenza di tablesorters .trigger ("update") ma non so dove applicarlo. Ho provato "afterRender", binding personalizzati, e.t.c - senza alcun risultato ... Ho fatto un jsfiddle, forse questo chiarisce le cose: http://jsfiddle.net/a8jUj/1/Knockout.js con jQuery tablesorter

Se si ordina senza impostare alcune voci inattive, tutto funziona. Se prima si imposta qualcosa di inattivo e poi si ordina la tabella, riappare ?!

Aggiornamento: Ok, mi sono innamorato di knockoutjs - ancora :) Hanno alcuni programmi di utilità pulito inclusi, uno di loro ha la possibilità di ordinare observableArrays ->http://knockoutjs.com/documentation/observableArrays.html.

risposta

3

Ordina activeUsers utilizzando sort algoritm. La vista si aggiornerà automaticamente! Non si dovrebbe interagire con la vista direttamente come

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

Ma fare somthing come questo:

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

activeUsers.sort(sortUsers); 
+0

grande, che ha lavorato :) –

+0

qui si va! Non dimenticare di segnare la risposta corretta! :) –

+1

Quindi, sono confuso. La tua risposta su come usare tablesorter con knockout è non usare tablesorter? Suppongo che l'OP sia soddisfatto, ma se si volesse utilizzare tablesorter per le altre funzionalità (temi, widget, raggruppamento, ecc.)? E 'solo non compatibile? – neverfox

Problemi correlati