【问题标题】:Ionic2 function setInterval can't get a parameterIonic2 函数 setInterval 无法获取参数
【发布时间】:2016-04-10 04:26:31
【问题描述】:

我使用 Ionic2 构建了一个基于 Angular2 和 Cordova 的应用程序。 当我使用函数 setInterval 获取一个名为 clickCount 的参数时,它发生了一个未定义的错误。

export class ItemDetailsPage {
static get parameters() {
    return [[NavController], [NavParams]];
}
constructor(nav, navParams) {
    this.nav = nav;
    this.clickCount = 0;
    this.selectedItem = navParams.get('item');
}

startTapped(event) {
   var cp= this.clickCount;   //here can get the clickCount
    this.stop = setInterval(function() {
        console.log(this.clickCount); //occur a undefined error
    }, 1000);
}

}

【问题讨论】:

    标签: javascript angular ionic2


    【解决方案1】:

    这是一个范围问题,要快速解决,就去做吧:

    startTapped(event) {
       var that = this;
       this.stop = setInterval(function() {
           console.log(that.clickCount); //no more undefined error
       }, 1000);
    }
    

    我碰巧是因为“setInterval”中的“this”是它自己的函数“setInterval”,而不是“startTapped”范围的“this”,如果你创建一个指向“this”的指针,你可以使用“setInterval”中的那个指针

    【讨论】:

      【解决方案2】:

      我不知道ionic,但我认为你应该使用arrow function/fat arrow,如下所示,

      this.stop = setInterval(()=> {
              console.log(this.clickCount); //this will log this.clickCount
          }, 1000);
      }
      

      您可以使用arrow function 和不使用arrow function 来检查此答案。但没有离子。对此感到抱歉。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-02
        相关资源
        最近更新 更多