Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Requirejs 全局应用程序变量始终返回为未定义_Requirejs_Typescript_Kendo Mobile_Multi Device Hybrid Apps - Fatal编程技术网

Requirejs 全局应用程序变量始终返回为未定义

Requirejs 全局应用程序变量始终返回为未定义,requirejs,typescript,kendo-mobile,multi-device-hybrid-apps,Requirejs,Typescript,Kendo Mobile,Multi Device Hybrid Apps,好的,有一点背景知识,我正在尝试使用kendo mobile和VisualStudios新的多设备混合应用程序项目设置的typescript。我有一个名为main.ts的文件,其中包含以下代码: /// <reference path="../typings/require.d.ts" /> import MyApplication = require('../app/MyApplication'); var App: MyApplication; document.add

好的,有一点背景知识,我正在尝试使用kendo mobile和VisualStudios新的多设备混合应用程序项目设置的typescript。我有一个名为main.ts的文件,其中包含以下代码:

/// <reference path="../typings/require.d.ts" />

import MyApplication = require('../app/MyApplication');
var App: MyApplication;   

document.addEventListener("deviceready", function ()
{    
   App = new MyApplication();
}, false);
当数据显示属性存在时,我收到一个错误,该错误表示“无法读取未定义的'PrimaryController'的属性”-即我的全局应用变量从未实例化

如果我删除了data show属性,那么App变量“似乎”会被实例化,因为primaryview.html会按预期显示,正如前面提到的,我正在为MyApplication在构造函数中设置初始视图。我唯一怀疑实例化是否发生的原因是我在main.ts中设置了断点,但即使数据显示被删除,视图显示,断点也从未命中

有人知道这是怎么回事吗?我想可能需要包括对require.config()的调用在main.ts中,我尝试使用我在谷歌搜索中找到的示例进行设置,但没有任何效果。

一旦您做出导入语句,您的文件将被包装在
定义中,并且文件中的全局变量不再是全局变量,即在
窗口中可用,因此:

import MyApplication = require('../app/MyApplication');
var App: MyApplication;  
应用程序不在窗口中

不过,您可以执行以下操作以在窗口中输入:

document.addEventListener("deviceready", function ()
{    
   (<any>window).App = new MyApplication();
}, false);
document.addEventListener(“deviceready”,函数()
{    
(window.App=newmyapplication();
},假);

谢谢你,伙计!!我曾经尝试过(没有演员阵容),但它不会生成,因为Windows上不存在应用程序属性,但演员阵容完全解决了这个问题。我从来没有想过要演这个角色。我知道我们不应该用这些评论来表示感谢,但见鬼去吧,谢谢你,谢谢你@RollTide73这样的评论让一切都值得;)
data-show="App.PrimaryController.OnViewShow"
import MyApplication = require('../app/MyApplication');
var App: MyApplication;  
document.addEventListener("deviceready", function ()
{    
   (<any>window).App = new MyApplication();
}, false);