0

我知道如何将锚元素绑定到点击事件。但是当通过 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 对象上设置了完全相同的单击绑定,但它们不会触发事件......

有什么解决办法吗?

提前致谢!

4

1 回答 1

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/

于 2013-05-08T17:08:03.593 回答