【发布时间】:2012-08-16 16:02:27
【问题描述】:
我正在使用Requirejs 在我们的网络应用程序中加载 JavaScript。问题是我得到一个 undefined 对象被传递给一个模块,当在其他模块中使用时,它被实例化得很好。
好的,这是设置。我的 main.js 文件在启动时运行 requirejs:
require.config({
baseUrl: "/scripts",
paths: {
demographics: "Demographics/demographics",
complaints: "Complaints/complaints",
}
});
require(["templates", "demographics", "complaints", "crossDomain"], function (templates, demographics, complaints) {
"use strict";
console.log("0");
console.log(demographics === undefined);
demographics.View.display();
});
很多配置已经被剥离到这个问题中的核心文件。
这里是Demographics.js:
define(["ko", "templates", "complaints", "globals", "underscore"], function (ko, templates, complaints, globals) {
// Stuff removed.
return {
View: view
};
});
和Complaints.js
define([
"demographics",
"ko",
"templates",
"complaints",
"visualeffects",
"globals",
"webservice",
"underscore",
"typewatcher",
"imagesloaded"],
function (demographics, ko, templates, complaints, visualeffects, globals, webservice) {
"use strict";
console.log("1");
console.log(demographics === undefined);
return {
View: view
};
});
问题在于 - 在Complaints.js 中,通过define 配置传递的demographics 参数是undefined。控制台注销告诉我“人口统计 === 未定义”是 true。
但是,当 main.js 文件执行时,传递给它的人口统计参数不是未定义的,正如预期的那样,它是一个实例化的对象。
现在我被困住了,因为我不明白为什么在 complaints.js 中人口统计变量是未定义的。谁能发现我错过了什么?
【问题讨论】:
标签: javascript requirejs