2015-07-19 74 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嗎? –