Javascript运行时错误:'应用程序未定义'

时间:2015-03-08 04:29:26

标签: javascript winjs windows-applications

我需要知道这是否正确。我刚刚开始使用WinJS开发应用程序。我已经确定问题的根源并摆脱它但我不知道这是否是正确的方法。请帮忙!

// Optimize the load of the application and while the splash screen is
// shown, execute high priority scheduled work.

ui.disableAnimations();
var p = ui.processAll().then(function () {
    //return nav.navigate(nav.location || Application.navigator.home, nav.state);
        return nav.navigate(nav.location || app.local, nav.state)
    }).then(function () {
        return sched.requestDrain(sched.Priority.aboveNormal + 1);
    }).then(function () {
        ui.enableAnimations();
    });

问题出在第一个.then()。注释行是默认行,我已经改变它以使应用程序正常工作。我完全不知道它是什么。请告诉我它意味着什么以及改变了什么。顺便说一下,“app”是WinJS.Application,而Application是navigator.jshome属性所在的WinJS名称空间。

1 个答案:

答案 0 :(得分:0)

此错误表明navigator.js在执行此代码时尚未加载。 Application命名空间完全是任意的,与WinJS.Application无关,只在navigator.js中定义,所以如果没有加载该文件,那么命名空间就不会存在。

顺便说一下,WinJS命名空间只是JavaScript中模块模式的形式化,可以帮助您防止全局命名空间变得混乱。声明navigator.js这样的命名空间就可以了:

 WinJS.Namespace.define("Application", {
     PageControlNavigator: WinJS.Class.define( 

只需在全局命名空间中创建一个名为" Application"的对象。然后为它定义成员。 (顺便说一句,你可以改变#34;应用程序"你想要的任何东西.navigator.js中的任何其他内容都不依赖于它,而navigator.js来自Visual Studio中的应用程序模板并且不是#39 ;部分WinJS本身。)

所以再一次,我的怀疑是你在default.html中没有(或者任何正确的路径),它的路径是不正确的,或者也许它是正确的在其他代码尝试执行后加载。尝试在WinJS.Namespace.define上设置断点,看看是否加载了该文件并且断点被击中。