2015-09-11 11 views
-1

工作我使用下面的代碼來生成與數據綁定表綁定。數據和動態數據不能在淘汰賽

$('<tr><td><table><tbody id="dynamic" data-bind="template:{name: \'tableView\', foreach: dat}"></tbody></table></td></tr>').insertAfter($(string).closest('tr')); 

表正在創建,但數據綁定不起作用。

我已經嘗試

ko.applyBindings(myViewModel(),$('#dynamic')[0]); 

,但它不工作。

+0

嘗試這樣http://jsfiddle.net/supercool/LkqTU/26679/。您需要通過cleanNode重新應用綁定。 –

+0

請更新您的問題,幷包含最少的,但*足夠*的代碼來重現您的方案。 – Jeroen

+0

@supercool'cleanNode'不推薦使用;這是一個內部例程。你撥弄工作正常,沒有它,使用OP的方法:http://jsfiddle.net/LkqTU/26680/ –

回答

0

首先,看一看的html binding,這是優選的,以通過jQuery插入HTML。你可以讓一個包裝html約束力,每當HTML更新應用綁定自定義綁定處理程序。這可能適合你:

ko.bindingHandlers.boundHtml = { 
    init:ko.bindingHandlers.html.init, 
    update: function (element, valueAccessor, allBindingsAccessor, data, context) { 
     ko.bindingHandlers.html.update(element, valueAccessor, allBindingsAccessor, data, context); 
     var nodes = element.children; 
     for (var i=0; i<nodes.length; ++i) { 
      ko.applyBindings(context, nodes[i]); 
     } 
    } 
}; 

A fiddle