我是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() {
var a = {
"sheep": "blah",
}
return a;
});
要求和加载模块a很好,但是当我尝试提醒a.sheep时,我得到了未定义。 注意:我也尝试过宣告羊:“等等”并尝试将羊换成警报功能并运行a.sheep;哪个有效。
答案 0 :(得分:2)
您无法访问a.sheep
的原因是dojo/NodeList-dom
变量中有a
个模块。 define/require
数组中元素的顺序绑定到后续function
中的参数列表。所以你应该写:
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() {}
});
});
每个模块都在他自己的行上,加上通过空行对模块进行逻辑聚类。