2016-12-25 10 views
0

コールバック関数でthisにアクセスすることはできませんが、のオブジェクトではなく、onClickEmail関数を呼び出すのではなく、AJAXオブジェクトを指すthisを使用して終了します。私は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

私は "Uncaught ReferenceError:それは定義されていません"というエラーを受け取りました。 "それ"にアクセスしようとしました。 –

+1

完全なコードがないと言うのは難しいです。あなたは "それ"に何を入れたいですか? – DrobyshevAlex

+0

完全なコードは次のとおりです:https://github.com/cravi24/clientAppEmber/blob/master/app/controllers/home.js –

関連する問題