Я использую 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
. Выход из консоли говорит мне, что "демография === undefined" - true
.
Однако, когда файл main.js выполняется, передаваемый ему параметр демографии не является undefined, он, как и ожидалось, представляет собой экземпляр объекта.
Теперь я застрял, так как не могу понять, почему в Complaints.js
эта демографическая переменная undefined. Кто-нибудь может заметить, что я пропущу, пожалуйста?