Получите динамически вставленный HTML для работы с knockoutjs

Я использую JQuery DataTables для всех моих таблиц из-за всех хороших встроенных функций, но, похоже, единственный способ настроить макет таблицы - это установить & quot; sDom & quot; атрибут атрибута для DataTable и использовать что-то вроде$("div.SOMECLASS").html(HTML_HERE) вставить настроенный HTML в таблицу. (К вашему сведению, я просто пытаюсь настроить заголовок).

Проблема в том, что я хочу, чтобы вставленный html использовал привязку knockoutjs. Кажется, что Knockout не инициализирует привязку таким образом.

Есть ли способ обойти это?

Это часть HTML, который я хочу вставить. Это в значительной степени выпадающий список некоторых пользовательских функций фильтра для таблицы.

'<li><a data-bind="click: Filter(\'Severity 1\', 2)">Severity 1</a></li>'
 Trinh Hoang Nhu31 мая 2012 г., 03:52
с Jquery вы можете использовать .live или .on для обработки динамически создаваемого контента
 Liam28 июл. 2017 г., 16:28
Возможный дубликатknockout data-bind on dynamically generated elements

Ответы на вопрос(1)

Решение Вопроса

Вы должны вызвать эту функцию после вставки динамического элемента HTML

ko.applyBindings(viewModel, elementContainingDynamicContent)

Пример здесьhttp://jsfiddle.net/rniemeyer/FCN5p/

 T.Ho31 мая 2012 г., 05:11
Спасибо, это именно то, что я ищу.
 12 мая 2014 г., 05:26
Если у вас уже есть элемент jQuery,$element[0] тоже работает.
 04 сент. 2013 г., 02:51
Это правильный ответ, я не уверен, почему его было так трудно найти. Это может быть весьма редким явлением для динамической загрузки содержимого страницы. Спасибо!
 03 февр. 2014 г., 01:47
Примечание для всех, чтобы это работало, используйтеdocument.getElementById("elementId") получить элемент DOM; не используйте jquery$('#elementId')в противном случае Ко вызывает ошибку:tinyurl.com/laaqf7j

Ваш ответ на вопрос