我的winjs应用程序中有一个页面,在ready函数中,我为页面中列表视图的onloadingstatechanged
事件分配了一个函数。然后我像往常一样检查那是什么时候强制等等。
var buttonsListView = document.querySelector(".buttons-container .itemslist").winControl;
buttonsListView.onloadingstatechanged = function (args) {
if (args.srcElement === buttonsListView.element && buttonsListView.loadingState === "complete") {
//MY CODE HERE
buttonsListView.onloadingstatechanged = null;
}
}.bind(this);
这是HTML:
<div class="buttons-container">
<div class="buttonTemplate" data-win-control="WinJS.Binding.Template">
<button data-win-control="WinJS.UI.AppBarCommand" data-win-options="{icon:'', type:'button'}" data-win-bind="winControl.label: buttonName; winControl.icon: icon"></button>
</div>
<div class="itemslist win-selectionstylefilled" data-win-control="WinJS.UI.ListView" data-win-options="{
layout: {type: WinJS.UI.GridLayout},
selectionMode: 'none',
itemTemplate: select('.buttons-container .buttonTemplate'),
itemDataSource: null,
oniteminvoked: RapportPage.buttonNavigate
}">
</div>
</div>
我的问题是,如果我导航到另一个页面,然后按后退按钮,就会触发就绪事件,但onloadingstatechanged
永远不会发生。
答案 0 :(得分:0)
我发现了问题。
按类.itemslist引用listview它不起作用。当您从另一个页面返回而不是直接导航到页面时,列表视图中的某些内容会有所不同。
所以我只是为ListView div分配了一个ID,然后加载像这样的dom对象:
var buttonsListView = document.querySelector("#buttonList").winControl;