我见过很多人遇到这个问题,但由于某种原因,我无法找到有效的解决方案。
我收到此错误:
Uncaught Error: cannot call methods on listview prior to initialization; attempted to call method 'refresh'
这是正在发生的事情的细分。
我正在绑定这个事件:
$('#person').bind('pagebeforeshow', function(e, data){
Person.getPersonData();
});
在 getPersonData() 方法中,我使用下划线 _.after 函数来呈现模板并在完成所有 ajax 调用后刷新三个列表视图。我正在使用 Knockout.js 应用一些数据绑定。
var tmplMarkup = $('#tmpl-person').html();
var compiledTmpl = _.template( tmplMarkup, {data: Person.data} );
$('#person-wrapper').html(compiledTmpl);
$('#person-info-wrapper').listview('refresh');
$('#person-related-wrapper').listview('refresh');
$('#person-groups-wrapper').listview('refresh');
$('#person-notes-wrapper').listview('refresh');
ko.applyBindings(Person.data, document.getElementById('person-notes-form'));
我不确定我在这里做错了什么。我尝试绑定到不同的页面加载事件,但没有运气。我什至尝试在进行 ajax 调用几秒钟后使用 setTimeOut 刷新列表视图,但这也无济于事。
提前致谢。