敲除数据绑定=“;html:html,内部html点击事件不起作用

knockout data-bind="html: html , inside html click event is not working

本文关键字:html 内部 事件 不起作用 数据绑定      更新时间:2023-09-26

我有这样的html:

<div class="row thumbnailrow" data-bind="foreach: data">
                            <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12 thumbpadding" data-bind="html: HtmlText">
                            </div>
                        <div>

获得ajax调用后:

成功:函数(数据){

        $.each(data, function (i, items) {
            debugger;
            self.data.push(items);
        });
    }

因此,它将填充html绑定和googlechrome输出,如下所示:

<div class="row thumbnailrow" data-bind="foreach: MyProfilesData">
                            <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12 thumbpadding" data-bind="html: HtmlText"><div>
    <div class="pcbtn btnpcedit" data-bind="click: EditProfile" />
                        </div>
                    </div>

所以这里我的click: EditProfile不工作,当我点击编辑按钮时,这个事件没有被触发。

html绑定不处理插入的HTML中的绑定。通常,应用绑定是不安全的。但如果这是你真正想做的事情,你需要一个像这样的自定义绑定:

ko.bindingHandlers.htmlBound = {
    init: function() {
        return { controlsDescendantBindings: true };
    },
    update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
        ko.utils.setHtml(element, valueAccessor());
        ko.applyBindingsToDescendants(bindingContext, element);
    }
};