2016-12-12 3 views
34

の内側に、私はので、私は「これ」への参照を格納する必要はありませんので、私のクラスで2角度 - で「これは」setTimeoutを

showMessageSuccess(){ 

    var that = this; 
    this.messageSuccess = true; 

    setTimeout(function(){ 
     that.messageSuccess = false; 
    },3000); 

    } 

どのように再作成することができ、このように機能を持って使用します'それ' var? setTimeoutの中で 'this'を使うと、messageSuccess boolは変更/更新されていないようです。

答えて

113

あなたはsetTimeoutメソッド内thisコンテキストを維持するためにArrowFunction ()=>を使用する必要があります。

// var that = this; // no need of this line 
this.messageSuccess = true; 

setTimeout(()=>{ //<<<--- using()=> syntax 
     this.messageSuccess = false; 
},3000); 
+0

いつも動作します。他にも問題があるかもしれません。私はあなたがそれを調査するか、関連する質問をすることができますか?@RomainBruckert – micronyks

+0

本当、あなたは正しいです...無関係、申し訳ありません! ;-) –