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

时间:2013-06-09 18:12:11

标签: javascript ajax knockout.js knockout-2.0

我正在使用淘汰赛,我想用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>

问题是淘汰赛没有认识到新元素的数据绑定......任何人都可以向我解释一个更好的解决方案吗?

TNX !!

1 个答案:

答案 0 :(得分:1)

在您的网页加载并且您创建了view model之后的代码中的某个时刻,您正在呼叫ko.applyBindings()并传递view model

当你的ajax调用回来并将内容附加到div时,淘汰赛不会自动知道它。您需要致电ko.applyBindings()传递您的view model以及您想要淘汰的元素,以便在以下位置查找data-bind属性:

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

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

以下是ko.applyBindings()行为的documentation