VS 11 Ultimate metro应用程序中的WinJS.UI.getControl

时间:2012-02-03 06:24:22

标签: javascript html5 windows-8 microsoft-metro

WinJS.UI.getControl未在VS 11 Ultimate中定义。有什么替代方法可以做同样的事吗?

我的意思是,如何在javascript中访问winJS控件?

4 个答案:

答案 0 :(得分:1)

不知道这个问题是否仍然有效以及最初的原因是什么,但无论如何:最好记住,从Consumer Preview附带的WinJS版本开始,没有WinJS.UI.getControl()函数不再,应该使用语法

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

有关详细信息,请参阅官方migration guide

答案 1 :(得分:0)

在源代码方面,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"));

答案 2 :(得分:0)

看起来最终版本中包含JavaScript项目模板的错误,默认情况下不包含winjs文件夹和文件夹中的JavaScript文件。

只需从快速版中复制该文件夹或将其添加到项目模板中。

答案 3 :(得分:0)

@Null Pointer 我注意到你有关于Metro应用程序中缺少JS引用的another question。就个人而言,我已经在许多Windows 8机器上安装了VS ultimate而没有任何问题。

我想知道你的安装人员是否有问题。您可以尝试卸载/重新安装Visual Studio,看看是否可以解决问题。

还可以在“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ProjectTemplates \ JavaScript \ Windows Metro style \ 1033”中查看zip文件的内容,并检查它们是否包含9其中包含标准的JS文件。如果它们丢失,那么安装程序可能在某些时候遇到问题。