1
我對道場的AMD自定義模塊,將是這樣的:調用兄弟方法
define(
"my/moduleName",
[//dependencies],
function(xhr) {
return {
method1: function() {
xhr.get({
url: "myurl",
load: function(data) {
//handle data
this.method2(data) //< THIS CAUSES ERROR: 'this.method2 is not a function'
}
});
},
method2: function(data) {
//process data
}
}
}
我懷疑我的問題是,創建一個延遲對象,method2
沒有在該對象中定義,而是在「我的/模塊」對象中定義。
如何使method1
致電method2
在xhr
已完成後?
真實的,但我在計算器的編輯寫了這個說明我的問題,我沒有與我的實際代碼的問題。雖然 – rantsh 2013-03-05 16:34:05
@rantsh:你應該總是發佈代碼,因爲你正在使用它,或者這個問題可能會被錯誤解釋:)你可以先將實際的'this'上下文存儲在函數中,然後需要時使用緩存的上下文。一個常見的約定是'var that = this',而不是稍後在需要的地方使用'that'。 – Nope 2013-03-05 16:43:36