2015-10-14 51 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对象,函数等。答案的要点是变量需要通过模块的返回值实际暴露。 –