web-dev-qa-db-ja.com

Angular 2 - setTimeout内でthisを使用する

私は私のクラスでそのような機能を持っています

  showMessageSuccess(){

    var that = this;
    this.messageSuccess = true;

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

  }

'that'変数に 'this'への参照を格納する必要がないように、どうすればこれを書き換えることができますか? setTimeout内で 'this'を使用した場合、messageSuccessブールは変更されず更新されません。

88
user2085143

this内にsetTimeoutcontextを保持するにはArrowFunction ()=>を使用する必要があります。

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

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