使用ajax dom元素更新视图模型

update view model with ajax dom elements

本文关键字:新视图 模型 更新 元素 ajax dom 使用      更新时间:2023-09-26

我与knockout一起工作,我想用ajax更新一个div内容,这是代码:

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

ajax给了我这个div发生在jquery的"div"

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

问题是knockout不能识别新元素的数据绑定…有人能给我解释一个更好的解决方案吗?

tnx ! !

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

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

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

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

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