敲除html绑定内部的另一个绑定

时间:2013-07-08 09:06:44

标签: javascript html knockout.js knockout-2.0

我正在使用knockout使用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做这件事,怎么能实现呢? 有模板可能吗?

1 个答案:

答案 0 :(得分:3)

当您调用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>

Maurizio编辑。使用这个小提琴,因为其他链接似乎被打破: See fiddle