Windows 8 列表视图中的项目何时在dom中可用?

Windows 8 列表视图中的项目何时在dom中可用?,windows-8,winjs,windows-8.1,Windows 8,Winjs,Windows 8.1,我有一个带有列表视图的页面。 加载后,我需要读取listView中最后一项的位置,但找不到合适的时间或事件来执行此操作。基本上,我找不到一种方法来确定是否所有的项目都加载到列表中 这是我的ready函数,正如您所看到的,我可以在listView加载完成时找到它,但似乎即使在这一点上,这些项在DOM中也不可用: 页面中只有一个列表 ready: function (element, options) { //now the onloadingstatechanged evenet for

我有一个带有列表视图的页面。 加载后,我需要读取listView中最后一项的位置,但找不到合适的时间或事件来执行此操作。基本上,我找不到一种方法来确定是否所有的项目都加载到列表中

这是我的ready函数,正如您所看到的,我可以在listView加载完成时找到它,但似乎即使在这一点上,这些项在DOM中也不可用:

页面中只有一个列表

ready: function (element, options) {

    //now the onloadingstatechanged evenet for the list
    var listView = element.querySelector(".itemslist").winControl;
    listView .onloadingstatechanged = function (args) {
        if (args.srcElement === listView .element && listView .loadingState === "complete") {

            debugger;

            /* THIS LINE SHOULD WORK IF THE ITEMS WERE LOADED, items IS INSTEAD null*/
            var items = element.querySelector(".itemslist .win-itemsblock");

            listView .onloadingstatechanged = null;
        }
    };
}
下面是当应用程序停止在
调试器时,我的DOM对象中的listView说明:

以下是程序运行到结束后我的DOM对象中的listView:


类型调试器;然后使用DOM检查器检查DOM,查看ListView是否已充实。当加载状态完成时,您应该可以访问DOM元素,这是对的,因此您的选择器可能有问题。

尝试访问列表视图的渲染元素的目的是什么。通常,使用绑定和模板是很好的。我试图了解listView中最后一个元素的位置,以便在列表的末尾附加一个自定义按钮。如下所示:我用loadingstate complete事件中的DOM对象视图更新了我的问题,以及之后的listView视图。我找不到加载所有win容器对象后激发的事件。您可以在那里看到选择器是否正常。也许值得一提的是,我正在异步加载数据,但这不应影响事件。我认为您的问题在于,您在第一次运行onloadingstatechanged事件后禁用了它。它需要在每次加载项时运行。第一次加载时,ListView中没有要加载的数据。删除您的
列表视图。onloadingstatechanged=null行,并查看断点是否最终报告项的非空值。您是对的!我之所以这样做是因为我两次得到loadingState==“complete”,但实际上这只是我第二次在列表中加载元素。非常感谢