WinJS.UI.getControl в метро-приложении VS 11 Ultimate

WinJS.UI.getControl не определен в VS 11 Ultimate. Есть ли альтернативы, чтобы сделать то же самое?

Я имею в виду, как я могу получить доступ к элементам управления winJS в javascript?


person Null Pointer    schedule 03.02.2012    source источник


Ответы (4)


Не знаю, актуальна ли эта проблема до сих пор или нет, и какова была первоначальная причина, но в любом случае: полезно помнить, что, начиная с версии WinJS, поставляемой с Consumer Preview, больше нет функции WinJS.UI.getControl(), вместо этого следует использовать синтаксис

var appBar = document.getElementById("appBar").winControl;

Подробнее см. в официальном руководстве по миграции.

person harriha    schedule 19.03.2012

Нет никакой разницы в IDE с точки зрения вашего исходного кода. Это означает, что нет такой вещи, как это определено в Ultimate, но не в Express. VS Ultimate дает вам больше инструментов, но не меняет код, который у вас есть (если только вы не используете такие инструменты :)).

Убедитесь, что вы включили ui.js

<script type="text/javascript" src="winjs/js/ui.js"></script>

Вы можете использовать его следующим образом:

var appBar = WinJS.UI.getControl(document.getElementById("appBar"));
person Tiago Andrade e Silva    schedule 03.02.2012

Похоже, что есть ошибка с шаблоном проекта JavaScript, включенным в окончательную версию, папка winjs и файлы JavaScript в папке не включены по умолчанию.

Просто скопируйте эту папку из экспресс-версии или добавьте ее в шаблон проекта.

person sarvesh    schedule 05.02.2012

@Null Pointer Я заметил, что у вас есть еще один вопрос об отсутствующих ссылках JS в приложениях Metro. Лично я без проблем установил VS Ultimate на несколько компьютеров с Windows 8.

Мне интересно, были ли у вас проблемы с установщиком. Не могли бы вы попробовать удалить/переустановить Visual Studio и посмотреть, исправит ли это ситуацию.

Также вы можете проверить содержимое zip-файлов в «C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ProjectTemplates\JavaScript\Windows Metro style\1033» и убедиться, что они содержат 9 стандартных файлов JS. в них. Если они отсутствуют, вероятно, ваш установщик в какой-то момент столкнулся с проблемой.

person Richard Banks    schedule 06.02.2012
comment
Спасибо за ваш ответ. В этой папке я не могу найти какой-либо файл js, кроме некоторых dll. И еще один мой вопрос. При создании нового проекта проект автоматически ссылается на библиотеку Microsoft Windows для JS SDK и содержит только 2 файла js (base.js, \ и ui.js). Я не вижу другие 7 основных файлов js - person Null Pointer; 06.02.2012
comment
В папке, которую я упомянул, должны быть только файлы .zip, а не .dll. Вы пытались удалить Visual Studio, а затем переустановить его? - person Richard Banks; 06.02.2012