0

我正在使用淘汰赛,我想用 ajax 更新 div 内容,这是代码:

$.ajax(
    {
        type: 'GET',
        url: url,
        success: function(datos)
        {
            $(div).empty();
            $(div).append(datos);
        },
        error: function(xhr,tipo)
        {
            alert('Ajax error!');
        }
    })

ajax 给了我这个用 jquery 附加到“div”的 div

<div class="span12">
    <a data-bind="click:transicion.bind($data,'/newPage')" class="w8-button green pull-left">Cargar un nuevo Producto</a>
</div>

问题是淘汰赛没有识别新元素的数据绑定......谁能解释我一个更好的解决方案?

天呐!!

4

1 回答 1

1

在您的页面加载并创建您的代码后的某个时刻view model,您正在调用ko.applyBindings()并传入您的view model.

当您的 ajax 调用返回并将内容附加到 adiv时,淘汰赛不会自动知道它。您需要调用ko.applyBindings()传入您的view model和要淘汰的元素来查找data-bind属性:

ko.applyBindings( yourViewModel, document.getElementById( "yourDivId" ) )

或者您可以使用任何其他方式获取您的div(如 jQuery 选择器)。

这是有关该行为的文档。ko.applyBindings()

于 2013-06-09T19:45:45.417 回答