2015-07-19 78 views
6

我正在学习如何使用NativeScript编写应用程序。我相信最好的学习方法就是通过做。出于这个原因,我正在构建一个基本的应用程序。在JavaScript中添加全局变量/函数(特别是NativeScript)

在这个应用程序,我试图创建一个函数和一个变量,我可以访问所有的视图模型和应用程序中的其他代码。为了做到这一点,我想我会在应用程序对象上添加一个函数和变量。

app.js

var application = require("application"); 
application.mainModule = "main-page"; 
application.start(); 

我想我可以捎带上它并添加一个全局可见函数和变量,像这样:

在NativeScript,该应用程序是使用下面的代码初始化:

application.prototype.myFunction = function() { 
    console.log('I made it!'); 
}; 
application.myVariable = 'some value'; 

然后,在我看来的模型或其他代码中,我可以做如下的事情:

的意见/ home.js

application.myFunction(); 
console.log(application.myVariable); 

然而,当我运行此代码,我得到的说,应用程序是未定义的错误。我不完全明白这一点。我认为,因为应用程序是在app.js中定义/实例化的,所以它将全局可见。但是,它似乎不是。同时,我不知道该怎么做。

回答

12

使用全局命名空间。在您的app.js,代码:

var application = require("application"); 
application.mainModule = "main-page"; 

global.myVariable = 'some value'; 

application.start(); 

然后可以使用global.myVariable在您的应用程序的任何地方。

+1

我知道这是旧的,但多少皱起了眉头呢? (因为它似乎是分享数据而不必重写所有可观察数据的唯一方式) – MoshMage

+0

我们可以拥有全局的observable和propertyChangeEvent吗? –