web-dev-qa-db-ja.com

動的に挿入されたHTMLを取得して、knockoutjsで動作させる

Niceのすべての組み込み機能のために、すべてのテーブルにJQuery DataTablesを使用していますが、テーブルレイアウトをカスタマイズする唯一の方法は、DataTableの「sDom」オプション属性を設定し、$("div.SOMECLASS").html(HTML_HERE)カスタマイズされたhtmlをテーブルに挿入します。 (参考までに、ヘッダーをカスタマイズしようとしています)。

問題は、挿入されたhtmlでknockoutjsバインディングを使用することです。 Knockoutはこの方法でバインディングを初期化しないようです。

これを回避する方法はありますか?

これは、挿入したいHTMLの一部です。これは、テーブルのカスタムフィルター関数のドロップダウンリストです。

'<li><a data-bind="click: Filter(\'Severity 1\', 2)">Severity 1</a></li>'
41
T.Ho

ダイナミックHTML要素を挿入した後にこの関数を呼び出す必要があります

ko.applyBindings(viewModel, elementContainingDynamicContent)

ここの例 http://jsfiddle.net/rniemeyer/FCN5p/

64
Trinh Hoang Nhu