Angular 2 – ‘this’ gebruiken in setTimeout [duplicate]

Ik heb zo’n functie in mijn klas

 showMessageSuccess(){
    var that = this;
    this.messageSuccess = true;
    setTimeout(function(){
      that.messageSuccess = false;
    },3000);
  }

Hoe kan ik dit herschrijven zodat ik geen verwijzing naar ‘dit’ in de ‘dat’ var hoef op te slaan? Als ik ‘this’ binnen de setTimeout gebruik, lijkt het berichtSuccess bool niet te veranderen/geüpdatet te worden.


Antwoord 1, autoriteit 100%

U moet de functie Pijlfunctie ()=>ES6gebruiken om this-context te behouden binnen setTimeout.

// var that = this;                        // no need of this line
this.messageSuccess = true;
setTimeout(()=>{                           // <<<---using ()=> syntax
    this.messageSuccess = false;
}, 3000);

Other episodes