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