Привязка нокаутного клика в всплывающем html-содержимом не работает

Я пытаюсь применить привязку клика в HTML, содержащуюся во всплывающем окне.
Событие клика не работает в $root.confirmDeleteColor

Ниже приведен html-код, а в кнопке (ДА) вызывается событие клика.

<tbody data-bind="foreach: responseData">
    <td align="center">
       <a class="btn btn-default glyphicon glyphicon-pencil" title="Edit Color" data-bind="attr: { id: id}"></a>
       <a class="btn btn-danger glyphicon glyphicon-trash popover-top" data-toggle="popover" data-html="true" 
       data-content='<div><b>Are you Sure you want to delete this Item ?</b><div class="modal-footer"><button type="button" class="btn btn-secondary">No</button><button type="button" class="btn btn-danger" data-bind="click: $root.confirmDeleteColor">yes</button></div></div>'
       title="Delete Color"></a>
    </td>
</tbody>

Вот код ВМ

confirmDeleteColor: function () {
    var self = this;
    console.log("testing");
}

В консоли тестовый текст не печатается.

Вот изображение страницы

введите здесь описание изображения


person San Jaisy    schedule 10.07.2017    source источник


Ответы (1)


Это связано с тем, что когда bootstrap добавляет всплывающее окно в DOM, шаблон нокаута уже скомпилирован, поэтому Knockout не знает о привязке вашего клика. В таких случаях следует использовать такие привязки, как эта: всплывающее окно Knockstrap Или создать собственное (Пользовательские привязки нокаута)

person Natalia Kamaeva    schedule 10.07.2017
comment
Я не хочу пользоваться библиотекой. Я хочу выступить с пользовательскими нокаутирующими креплениями, не могли бы вы показать мне пример? - person San Jaisy; 10.07.2017