【问题标题】:knockout html binding with another binding inside淘汰 html 绑定与内部的另一个绑定
【发布时间】:2013-07-05 13:21:19
【问题描述】:

我正在使用敲除将内容动态加载到页面的某些部分,使用 HTML 绑定。

问题是我要绑定的html必须调用一个函数onclick,我需要关于目标的信息和敲除容易发送的数据。

类似这样的:

myFunction($parent, $data)

HTML:

<table>
    <tbody data-bind="foreach: rows" >
        <tr>
            <td data-bind="html: rowValue">this will be a link</td>
        </tr>
   </tbody>
</table>

稍后我将值设置为内部带有敲除绑定的链接:

rowValue("<a href='#' data-bind=click:alert('hello')" + result.Data + "</a>");

请查看fiddle here 以查看完整的工作代码。

您可以看到我写的两行之间的区别,如果我执行 javascript onclick 它可以工作,但显然 ko 缺少后期绑定。

我已经看到很多关于此的问题,但找不到一个有明确答案的问题。

我想用KO来做这个,怎么做呢? 也许有模板?

【问题讨论】:

    标签: javascript html knockout.js knockout-2.0


    【解决方案1】:

    当您调用 ko.applyBindings 时,KO 会应用绑定。 因此,如果您在调用 applyBindings 之后修改 dom。 KO 不会知道新的 dom 元素。

    你可以这样使用模板:

    <table>
        <tbody data-bind="foreach: sitesTable.rows" >
            <tr data-bind="foreach: row">
                <td data-bind="template: 'myTemplate' "></td>
            </tr>
        </tbody>
    </table>
    
    <br/>
    
    
    <a href="#" onclick="getNewData()"> click here </a>
    <script id="myTemplate" type="text/html">
        <a href='#' data-bind="html: cellValue, click: openAlert"> click </a>
    </script>
    

    由毛里齐奥编辑。使用此小提琴,因为其他链接似乎已损坏: See fiddle

    【讨论】:

    • 感谢我的代码的模板转换。模板应该完成我需要的东西吗?因为你的小提琴没有这样做。我对其进行了修改以使其正常工作,但模板中的数据绑定似乎仍然被忽略了
    • 实际上我设法修复了您的小提琴:jsfiddle.net/MaurizioPiccini/QfLxM/13 如果您可以更新您的代码,我将接受您的答案供其他人查看。
    • 我很高兴听到这有帮助。
    猜你喜欢
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2016-10-26
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多