加载Ajax的数据不会更新布局

时间:2013-04-23 13:00:02

标签: javascript jquery jquery-mobile knockout.js

我使用ajax加载数据并使用Knockout填充我的页面。这一切都很有效,当我将页面更改为#contacts时,它看起来不错。但是,当#contacts页面是我加载的初始页面时,我遇到了问题。例如。如果我加载www.mydomain.com/#contacts,则加载的初始页面是列表页面,因此ko.bindinghandlers.listview没有任何影响。我尝试重新创建页面,但这也不完全有效,并非所有样式都应用。我的列表视图不仅仅是一个列表视图,它还包含一个控件组,用于创建带有复选框的列表视图。

$("#contacts").page('destroy').page();

$('#contacts').bind('pageinit', function() {
    $('ul').listview();
});

如何使用Ajax加载数据,将其(使用ko)附加到我的ul并正确渲染。

如果#contacts不是加载的初始页面,这就是它的样子: Correct

这是我设法实现这一目标的最佳结果,当#contacts是加载的初始页面时: Incorrect

2 个答案:

答案 0 :(得分:0)

每当您使用JavaScript更新时,都需要在列表视图上调用refresh

$('.selector').listview('refresh');

有关docs的更多信息。

答案 1 :(得分:0)

pageinit()可能在第一次加载时没有被调用。 在那里添加一个console.info以确保...如果这是问题,那么只需确保在load()或任何时候调用它。那是吗?