3

我的 Win8 HTML5/JS 应用程序中的智能感知存在一些问题(我认为)。

如果我在页面中有以下代码(在 ready: 函数中):

var control = element.querySelector("#rating").winControl;

我的第一个问题是,.winControl 属性没有显示在智能感知中,但是从搜索网络来看,这似乎是预期的行为(考虑到在像 javascript 这样的语言中提供智能感知的困难)?

但是,我现在的主要问题是,当我尝试访问控制变量的属性时,我收到以下消息:

Intellisense 无法确定此表达式的准确完成列表

我已将/// <reference path...etc 添加到 WinJS 参考中的 base.js 和 ui.js 中,但它仍然不起作用。

有谁之前经历过这个吗?这是正确的行为吗?我在这里想念什么?

干杯

4

2 回答 2

3

您所看到的是 Visual Studio 2012 中的预期行为。目前 .winControl 不会显示,即使它在运行时有效。

作为一种解决方法,您可以使用文档注释告诉 JavaScript 编辑器变量的类型,然后您可以获得 IntelliSense。使用上面的示例(我假设您想查看有关 WinJS.UI.Rating 控件的建议),输入:

/// <var type="WinJS.UI.Rating"/>
var control = element.querySelector("#rating").winControl;
control.

现在您将看到评级控件的完成列表。

  • 乔丹,微软 Visual Studio 项目经理
于 2013-05-10T07:32:21.367 回答
0

querySelector 函数返回一个 DOM 元素。由于 .winControl 不是 DOM 元素的标准属性,因此智能感知无法将其作为选项呈现给您。

由于您的“控制”变量被分配给智能感知未知类型的对象,因此它无法为您提供有关未知对象上可能存在或不存在哪些属性的任何帮助。

于 2013-03-18T20:07:31.253 回答