2013-03-14 2 views
3

У меня есть некоторые проблемы (я думаю) с intellisense в моем приложении Win8 HTML5/JS.WinJS intellisense не работает правильно

Если у меня есть следующий код на странице (в готовом: функция):

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

Мой первый вопрос, свойство .winControl не показывает в IntelliSense, но от поиска в Интернете это кажется ожидаемым поведением (учитывая трудности в обеспечении intellisense на языке, таком как javascript)?

Однако, моя главная проблема сейчас, когда я пытаюсь доступ к свойствам на моей управляющей переменной я получаю сообщение:

Intellisense не смог определить точный список завершения для этого выражения

Я добавил /// <reference path... и т.д. в base.js и ui.js в ссылке WinJS, но он по-прежнему не работает.

Неужели кто-нибудь испытал это раньше? Это правильное поведение? Что мне здесь не хватает?

Приветствия

+0

Мое предположение, что это намеренно. Я бы подумал, что это довольно сложно сделать в ситуации, о которой вы описали для механизма intellisense, чтобы определить, каково состояние вашего элемента до его выполнения. В теории вы могли бы изменить элемент управления на элемент и т. Д. – GotDibbs

+0

Я получаю это все время, когда я пытаюсь ссылаться на пространства имен/классы за пределами моего javascript текущего html текущего времени nonruntime. поэтому он работает, но работает только во время выполнения. любопытное раздражение, но может быть просто, как у меня установлен мой проект. –

ответ

3

То, что вы видите, - это ожидаемое поведение в Visual Studio 2012. В настоящее время .winControl не отображается, даже если он действителен во время выполнения.

В качестве обходного решения вы можете использовать комментарии к документации, чтобы указать редактору JavaScript тип переменной, и вы можете получить IntelliSense для него. Использование приведенного выше примера (я предполагаю, что вы хотите, чтобы увидеть предложения по контролю WinJS.UI.Rating), тип:

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

И теперь вы увидите список завершения для управления Rating.

  • Джордан, Microsoft Visual Studio PM
+0

Спасибо, Джордан, это отличный совет! – AndrewC

0

Функция querySelector возвращает элемент DOM. Поскольку .winControl не является стандартным свойством в элементе DOM, нет возможности для intellisense представить его вам в качестве опции.

Поскольку переменная 'control' присваивается объекту типа, который неизвестен intellisense, он не может дать вам никакой помощи о том, какие свойства могут или не могут присутствовать на неизвестном объекте.

Смежные вопросы