javascript - services - timeout angular



الزاوي 2-استخدام "هذا" داخل setTimeout (1)

هذا السؤال لديه بالفعل إجابة هنا:

لدي وظيفة مثل ذلك في صفي

  showMessageSuccess(){

    var that = this;
    this.messageSuccess = true;

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

  }

كيف يمكنني إعادة كتابة هذا حتى لا أضطر إلى تخزين إشارة إلى "هذا" في "ذلك" var؟ إذا كنت أستخدم "هذا" داخل setTimeout ، فلا يبدو أن messageSuccess منطقي التغيير / التحديث.


تحتاج إلى استخدام ArrowFunction ()=> للحفاظ على this السياق داخل setTimeout .

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

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




scope