2011-04-08 40 views
3

我有一個從KnockoutJS observableArray viewModel動態生成機智jquery.tmpl的表。在初始綁定之後,我還將tablesorter應用於表ID以進行排序。當我刪除(或添加到)viewModel時,我會「期待」,表更新,但更新後tablesorter不起作用,除非我再次調用$("#id").tablesorter();使用jquery.tablesorter與jquery.tmpl生成的表

在這裏有一個最佳做法是同時使用jQuery.tablesorter和KnockoutJS嗎?有沒有更好的插件在這裏使用?很顯然,我在做的工作,但我想知道我是否錯過了一些簡單的,會更有效。

回答

5

而不是調用$( 「#ID」)。的tablesorter()每一次,你可以調用$( 「#ID」)。觸發器( 「更新」)

這似乎是讓tablesorter知道基於docs有新數據需要考慮的首選方法。

如果您想獲得更多的信息,可以爲您的表創建自定義綁定,隨時調用您的observableArray進行更改。

應該是這樣的:

ko.bindingHandlers.triggerUpdate = { 
    update: function (element, valueAccessor) { 
     ko.utils.unwrapObservable(valueAccessor()); //need to just access the observable to create the subscription 
     $(element).trigger("update"); 
    } 
} 

然後,你會把這對你的表像:

<table id="mytable" data-bind="triggerUpdate: items"> 
+0

偉大的工作 - 感謝 - 我知道有一個更好的辦法。 – TodK 2011-04-08 18:51:55