1
Im在requireJS中定義變量時遇到問題定義模塊時,它不會生效。我有以下(切開)的例子來說明該問題:RequireJS設置來自外部的模塊變量不會生效
以下是定義的模塊:
define([], function() {
var testerString = "BaseLine";
var ShowTesterString = function() {
console.log(testerString);
}
var setTesterString = function (pTesterString) {
testerString = pTesterString;
}
return {
testerString: testerString,
ShowTesterString: ShowTesterString,
setTesterString: setTesterString
};
});
我不是設置「TesterModule」作爲另一個的依賴,並運行的下面幾行代碼:
TesterModule.ShowTesterString();
TesterModule.testerString = "Change 1";
TesterModule.ShowTesterString();
TesterModule.setTesterString("Change in Setter");
TesterModule.ShowTesterString();
什麼被輸出到控制檯:
BaseLine
BaseLine
Change in Setter
我禾ULD都認爲它應該是:
BaseLine
Change 1
Change in Setter
似乎只是做變量=等等犯規採取任何的特效設置模塊中的一個變量,它似乎需要對模塊的方法中設置變量。任何人都可以向我解釋爲什麼這是?或者我編碼錯了?
在此先感謝
嗨馬特,謝謝你的迴應。我改變了你所建議的佈局的定義功能,但它沒有改變。所以我想知道是否與RequireJS AMD風格有關。任何其他想法? – Matt
您更改了代碼以使用'foo'?這只是一個例子來澄清_如果它不起作用,則不能解決問題。解決的辦法是在部分片段中使用'this.testerString'。 –
對不起,讀過這篇文章。這個。解決了這個問題。 – Matt