Javascript 从方法中查询Windows 8应用程序中的DOM

Javascript 从方法中查询Windows 8应用程序中的DOM,javascript,dom,windows-8,winjs,Javascript,Dom,Windows 8,Winjs,即使在阅读了MSDN文档和以下在线指南之后,我仍在努力解决这个问题: 我认为我的问题很容易解决,我只是在想一些错误的事情。基本上,我正在查询我的web服务,并且在成功运行以下方法时。然后我尝试将结果绑定到我的listview。目前,我使用的是一个硬编码值publicMembers.itemlist,该值已在文档顶部声明,只是为了确保在使用查询结果之前,我可以实际绑定到列表。暂时忽略第2行 成功方法: _lookUpSuccess: function xhrSucceed(Result) {

即使在阅读了MSDN文档和以下在线指南之后,我仍在努力解决这个问题:

我认为我的问题很容易解决,我只是在想一些错误的事情。基本上,我正在查询我的web服务,并且在成功运行以下方法时。然后我尝试将结果绑定到我的listview。目前,我使用的是一个硬编码值
publicMembers.itemlist
,该值已在文档顶部声明,只是为了确保在使用查询结果之前,我可以实际绑定到列表。暂时忽略第2行

成功方法:

_lookUpSuccess: function xhrSucceed(Result) {
        var response = JSON.parse(Result.responseText);
        listView = document.querySelector("#termTest");
        ui.setOptions(listView, {
            itemDataSource: publicMembers.itemList,
            itemTemplate: document.querySelector(".itemtemplate"),
        })

     },
现在,我不再使用
document.querySelector
,而是尝试了
WinJS.Utilities.id
WinJS.Utilities.query
,两者都不起作用。这不会破坏我的代码并引入错误,但它也不会绑定到listview,因此我认为我在查询正确的DOM元素时遇到了问题。然而,如果我将代码添加到脚本的顶部,则完全相同的代码确实可以工作,只有当我将其放置在该方法中时,它才会停止工作

编辑:也是为了澄清,当我调试publicMembers.itemList存储我期望的值时

请指出,如果我解释得不好,我会努力改进我的问题


谢谢。

我没有使用WinJS.UI.setOptions,而是使用了另一种设置数据源的方法。你能看看它是否有效吗

_lookUpSuccess: function xhrSucceed(result) {
    var response = JSON.parse(result.responseText);
    listView = document.querySelector("#termTest");

    listView.winControl.itemDataSource = publicMembers.itemList;
 },

这将假定您正在将itemTemplate定义为ListView HTML元素的
data win options
属性的一部分。如果您希望以编程方式进行设置,也可以只执行
listView.winControl.itemTemplate=document.querySelector(“.itemTemplate”)

您需要访问listView.winControl,而不仅仅是元素。这样做,所有的事情都应该会起作用。我实际上还没有能够验证你的答案,但我设法解决了我的问题。经过数小时的调试,我似乎只需要在
listview
之前添加
var
。我做了很多其他的调整,但这听起来像是一个合乎逻辑的修复吗?我不能确定这不是其他的调整。不确定,但请确保您在代码中指定了“use strict”。如果使用变量而不声明它,则会生成错误/警告。看见