2016-12-25 87 views
0

我無法在回調函數中訪問this,但我最終使用指向AJAX對象的this而不是this對象調用了onClickEmail函數。我試圖在that變量中獲得參考,但這也沒有多大幫助。如何在AJAX調用的回調中訪問正確的`this`?

什麼我做錯了這裏:

onClickEmail() { 
    var that = this; 
    var hey = "xyz" 
    $.ajax({ 
    url: 'http://rest.learncode.academy/api/test123/tweets' 
    }).then(function(response) { 
    console.log(hey); 
    console.log(that); 
    }); 
} 

更比解決這個問題,我想知道那爲什麼我能讀懂的hey變量,但that值是不確定的

+0

如果我能理解你想用「這」的,我可以有更多的幫助是什麼。 – sheriffderek

+0

我正在使用emberjs創建一個web應用程序。這個方法'onClickEmail'在點擊一個DOM元素時被調用。擁有這個'onClickEmail'方法的類有一些屬性,只要我得到一個AJAX響應,我就需要訪問這些屬性。 –

回答

0

這一點 - 該變量指的是擁有該功能的對象。 使用綁定或嘗試

var that = this; 
onClickEmail(){ 
    $.ajax({ 
      url: 'http://rest.learncode.academy/api/test123/tweets' 
     }).then(function(response) { 
      hey = that; 
     }); 
} 
+0

當我嘗試訪問「that」時,出現「Uncaught ReferenceError:未定義」錯誤。 –

+1

很難說沒有完整的代碼。你想在「那個」中加入什麼? – DrobyshevAlex

+0

以下是完整的代碼:https://github.com/cravi24/clientAppEmber/blob/master/app/controllers/home.js –

相關問題