在Dojo中加载模块变量?
我是dojo新手,不明白为什么会发生这种情况 在dojo.html中:在Dojo中加载模块变量?,dojo,Dojo,我是dojo新手,不明白为什么会发生这种情况 在dojo.html中: require(["dojo/query", "dojo/NodeList-dom", "dojo/domReady!", "a" ], function(query, a) { query("#greeting").style("color", "red"); alert(a.sheep); }); 在a.js中 define([], function()
require(["dojo/query", "dojo/NodeList-dom", "dojo/domReady!", "a" ], function(query, a) {
query("#greeting").style("color", "red");
alert(a.sheep);
});
在a.js中
define([], function() {
var a = {
"sheep": "blah",
}
return a;
});
需要并加载模块a是可以的,但当我试图提醒a.sheep时,我没有定义。
注意:我还尝试过将sheep声明为“blah”,并尝试将sheep更改为警报函数并运行a.sheep;有效。无法访问
a.sheep
的原因是a
变量中存在dojo/NodeList dom
模块。define/require
数组中元素的顺序绑定到后续函数中的参数列表。所以你应该写:
require(["dojo/query", "a", "dojo/NodeList-dom", "dojo/domReady!"], function(query, a) {
})
另外,从实用的角度来看,我碰巧将代码的格式设置为:
define([
"dojo/_base/declare",
"dojo/query",
"a",
"dojo/NodeList-dom",
"dojo/domReady!"
],
function(
declare
query,
a
){
return declare(null, {
constructor: function() {}
});
});
每个模块都在自己的行上,加上通过空行的模块逻辑集群