在knockoutjs中使用html
绑定时遇到问题。在viewModel.maintable()
我有:
this.layerDetails = ko.observable("");
在我在上面的属性中添加一些html的函数中:
viewModel.maintable().layerDetails(viewModel.maintable().layerDetails() + "<a href='#' data-bind='click:function(){viewModel.refreshPage(true)}'>link</a>");
同样在html部分:
<div data-bind='html: layerDetails'>a</div>
但是,我无法触发refreshPage
功能。我写错了代码吗?
答案 0 :(得分:8)
html
绑定不会挂接任何数据绑定属性。你真的有几个选择来完成这项工作。
1-使用template
binding代替html。使用您的内容创建一个模板,Knockout将管理添加/删除DOM元素并挂钩数据绑定。
2-调用ko.applyBindings(yourViewModel, theNewRootElement)
。因此,您将传入您想要绑定的数据以及所创建的任何新元素的根。