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