Угловой 2 - использование этого "внутри" setTimeout

У меня есть такая функция в моем классе

  showMessageSuccess(){

    var that = this;
    this.messageSuccess = true;

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

  }

Как я могу переписать это, поэтому мне не нужно хранить ссылку на "this" в "this" var? Если я использую "this" внутри setTimeout, messageSuccess bool, похоже, не изменяет/не обновляется.

Ответ 1

Вам нужно использовать ArrowFunction ()=> чтобы сохранить this контекст в setTimeout.

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

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