Angular 2 / Ionic访问类功能

时间:2017-06-23 11:06:39

标签: angular cordova ionic-framework

使用Ionic(Angular 2)我正在构建一个应用程序,但以下代码似乎不起作用,因为我无法在Dialog承诺中访问函数leaveGroup(group)。

leaveGroupTapped(event, group) {   
 this.dialogs.confirm("Are you sure you want to leave this group?", "Confirm")
    .then(function (index) {       
      if (index == 0) {
        //dialog dismissed - do nothing
      } else if (index == 1) {
        //OK call next function to remove the group   
        this.leaveGroup(group) //does not work ofcourse
      } else {
        //Cancel
      }
   });
}

leaveGroup(group) {
//Do some stuff here
}

你会如何做这项工作?

由于

1 个答案:

答案 0 :(得分:2)

问题在于定义this.leaveGroup()的范围。

将您的代码修改为以下内容:

leaveGroupTapped(event, group) {   
   this.dialogs.confirm("Are you sure you want to leave this group?", "Confirm")
     .then((index) => {       
       if (index == 0) {
         //dialog dismissed - do nothing
       } else if (index == 1) {
         //OK call next function to remove the group   
         this.leaveGroup(group) //does not work ofcourse
       } else {
         //Cancel
       }
    });
}

请注意,我在这里使用了ES6的箭头功能。现在this.leaveGroup()的范围应该被定义为它将在你所指的范围内工作。

leaveGroup()现在应该正常工作。

  

箭头函数表达式的语法短于函数   表达式并不绑定它自己的this,arguments,super或   new.target - MDN

要了解有关箭头功能词汇范围的更多信息,请执行以下操作: