我使用Requirejs
在我們的Web應用程序中加載JavaScript。問題是,我得到一個undefined
對象被傳遞給一個模塊,當在其他模塊中使用時,它被很好地實例化。未定義的對象通過Requirejs
好的,這是設置。我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
人口統計變量未定義。任何人都可以發現我錯過的東西嗎?
啊,正是我所懷疑的,但真的沒有想到會發生這種情況(我是一個真正的新手,這AMD/requirejs的東西:)我的行動計劃是創建另一個模塊,將託管兩個代碼人口統計和抱怨。這意味着這個新模塊將用於調用其他兩個文件的代碼。感謝您確認我的想法。當我得到時間時會試一試。 – 2012-08-16 19:46:46