Knockout.js将Click事件绑定到虚拟元素

时间:2013-05-08 16:32:43

标签: knockout.js

我知道如何将锚元素绑定到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对象上具有相同的完全点击绑定集,但它们不会触发事件......

任何解决方案?

提前致谢!

罗布

1 个答案:

答案 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/