我在Win8 HTML5 / JS应用程序中使用intellisense遇到了一些问题(我认为)。
如果我在页面中有以下代码(在ready:函数中):
var control = element.querySelector("#rating").winControl;
我的第一个问题是,.winControl属性没有显示在intellisense中,但是从搜索网络看起来这似乎是预期的行为(考虑到用javascript等语言提供intellisense的困难)?
但是,我现在的主要问题是当我尝试访问控制变量的属性时,我收到消息:
Intellisense无法确定此表达式的准确完成列表
我已将/// <reference path...
等添加到WinJS参考中的base.js和ui.js,但它仍然无效。
以前有没有人经历过这个?这是正确的行为吗?我在这里缺少什么?
干杯
答案 0 :(得分:3)
您所看到的是Visual Studio 2012中的预期行为。目前.winControl即使在运行时有效也不会显示。
作为一种解决方法,您可以使用文档注释告诉JavaScript编辑器变量的类型,然后您可以获取它的IntelliSense。使用上面的示例(我假设你想看到WinJS.UI.Rating控件的建议),输入:
/// <var type="WinJS.UI.Rating"/>
var control = element.querySelector("#rating").winControl;
control.
现在您将看到评级控件的完成列表。
答案 1 :(得分:0)
querySelector函数返回一个DOM元素。由于.winControl不是DOM元素的标准属性,因此intellisense无法将其作为选项呈现给您。
由于您的'control'变量被分配给intellisense未知类型的对象,因此无法向您提供有关未知对象可能存在或不存在哪些属性的任何帮助。