WinJS.UI.getControl未在VS 11 Ultimate中定义。有什么替代方法可以做同样的事吗?
我的意思是,如何在javascript中访问winJS控件?
答案 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文件。如果它们丢失,那么安装程序可能在某些时候遇到问题。