如何使用html绑定?

时间:2011-06-28 09:46:34

标签: knockout.js

在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功能。我写错了代码吗?

1 个答案:

答案 0 :(得分:8)

html绑定不会挂接任何数据绑定属性。你真的有几个选择来完成这项工作。

1-使用template binding代替html。使用您的内容创建一个模板,Knockout将管理添加/删除DOM元素并挂钩数据绑定。

设置layerDetails值后,

2-调用ko.applyBindings(yourViewModel, theNewRootElement)。因此,您将传入您想要绑定的数据以及所创建的任何新元素的根。