Search code examples
javascriptjqueryhtmlknockout.jsknockout-2.0

Get dynamically inserted HTML to work with knockoutjs


I'm using JQuery DataTables for all my tables because of all the nice built-in features, but it seems the only way to customize the table layout is to set the "sDom" option attribute for the DataTable and use something like $("div.SOMECLASS").html(HTML_HERE) to insert the customized html into the table. (FYI, i'm just trying to customize the header).

The problem is I want the inserted html to use knockoutjs binding. Knockout doesn't seem to initialize the binding this way.

Is there a way to work around this?

This is part of the html that I want to insert. It's pretty much a drop down list of some custom filter functions for the table.

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

Solution

  • You have to call this function after insert dynamic HTML element

    ko.applyBindings(viewModel, elementContainingDynamicContent)

    Example here http://jsfiddle.net/rniemeyer/FCN5p/