我正在使用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
的参数是. 控制台注销告诉我“人口统计 === 未定义”是.demographics
define
undefined
true
但是,当 main.js 文件执行时,传递给它的人口统计参数不是未定义的,正如预期的那样,它是一个实例化的对象。
现在我被困住了,因为我不明白为什么complaints.js
那个人口统计变量是未定义的。谁能发现我错过了什么?