2015-10-14 36 views
0

我正在遷移到Dojo 10.4,之前我通過運行dojo amd轉換器修改了幾個定製的javascript文件。但遷移後,我無法訪問js文件中的變量。Dojo訪問來自外部Javascript文件的變量

我宣佈這樣在一個名爲ABC的文件:

define([ "dojo", "dojo/_base/declare", "dojo/_base/lang", "dojo/on", "dojo/request", "dijit/form/FilteringSelect" ], function (dojo, declare, lang, on, request, FilteringSelect) { var VARIABLE= {};

我現在用用<script>命令整合這個js在JSP文件的文件。

主要問題是,我怎樣才能訪問jsp文件中的var VARIABLE。

我試過用require,提供etc ..但還是不能訪問聲明變量。

回答

0

如果您使用JavaScript對象的工作,那麼你就可以明白:

這裏var VARIABLE被定義爲私有變量,如果你需要它在JSP中,你必須把它公開。這是一個示例代碼片段。

在UI/some.js:

define([ 
    "dojo/_base/declare", 
    "dojo/_base/lang", 
    "dijit/form/FilteringSelect" 
],function(declare, lang, FilteringSelect){ 
    return declare("ui.some", [],{ 
     VARIABLE: "testing", 
    }); 
}); 

在index.jsp中:

require(["ui/some"],function(Some){ 
    alert(Some.VARIABLE); 
}); 
+1

注意,沒有必要絕對是每個模塊中使用'declare';模塊也可以返回普通的JavaScript對象,函數等。答案的要點是變量需要通過模塊的返回值實際暴露。 –