我知道如何将锚元素绑定到click事件。但是我不确定当通过HTML绑定事件加载锚元素时如何做到这一点。这是我的代码:
<a href='/my_page' data-bind="click:$root.loadPage">Click here to load</a>
**此锚元素从服务器提供HTML。在提供的HTML中,我有一些我希望绑定到类似函数的锚元素。但我正在做的不起作用。这是我的淘汰代码,它执行“loadPage”
this.loadPage = function(data,object)
{
self.showLoadingIndicator();
$.get(object.target.href, function(response)
{
self.pageData(response.html);
}, 'json');
}
**我有一个名为“pageData”的可观察设置,它为页面提供HTML内容。
我的问题是: 在我的“服务”HTML中,我在这里的某些HTML对象上具有相同的完全点击绑定集,但它们不会触发事件......
任何解决方案?
提前致谢!
罗布
答案 0 :(得分:0)
调用applyBindings时,它只会影响页面上已有的内容 - 它不会影响以后加载的任何内容。
但是,您可以在添加到页面的新标记块上再次调用applyBindings。
var viewmodel = ...;
ko.applyBindings(viewmodel);
this.loadPage = function(data,object)
{
self.showLoadingIndicator();
$.get(object.target.href, function(response)
{
self.pageData(response.html);
var newStuffAddedToDOM = ...;
ko.applyBindings(viewmodel, newStuffAddedToDOM);
}, 'json');
}
这是一个工作小提琴:http://jsfiddle.net/tlarson/65K3u/