2013-03-01 90 views
1

我見過很多人遇到這個問題,但由於某種原因,我無法找到可行的解決方案。jQuery Mobile:列表視圖刷新錯誤

我得到這個錯誤:

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功能來呈現模板,並刷新3名列表視圖,我所有的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')); 

我不知道我在做什麼錯在這裏。我已經嘗試綁定到不同的頁面加載事件,並沒有運氣。我甚至嘗試過使用setTimeOut在ajax調用後幾秒鐘刷新列表視圖,但這也沒有幫助。

在此先感謝。

回答

1

這個問題很容易解決。

使用此:

$('#listview-id').listview().listview('refresh'); 

#listview-id是您的列表視圖ID(或其他任何參考),第一listview()將初始化,第二個將刷新。

如果你想找到更多關於這個問題,你可以在這裏找到它ARTICLE,說實話這是我的個人博客文章。或找到它HERE。查找名爲章:標記增強問題

+1

有趣。非常感謝! – 2013-03-06 19:46:22

+0

@Gajotres你的博客文章現在無法訪問。 – netalex 2013-06-27 08:11:33

+0

@netalex tnx的信息,我的VPS正在維護中。它將在白天提供。 – Gajotres 2013-06-27 10:32:56

1

嘗試如下

$('#person-info-wrapper ul').listview(); 
$('#person-related-wrapper ul').listview(); 
$('#person-groups-wrapper ul').listview(); 
$('#person-notes-wrapper ul').listview(); 
+1

謝謝,這對我有用 – Arian 2013-07-16 22:01:32