Angular .done()动画回调被调用两次吗? (Angular2)

时间:2017-03-22 07:15:39

标签: angular

我尝试过两种看似常见的修复方法,两者都显示在plnkr中:

  1. 在我的按钮上指定“type="button"
  2. 从开发模式中取出角度
  3. 如果单击“下一步”按钮,然后打开Javascript控制台,您会发现每次点击都会运行两次“done()”功能:

    http://embed.plnkr.co/HKlKWfV6JjWRxZiOnAJt/

    我也试过传递'$ event'并使用preventDefault()和stopPropagation(),但没有运气。

    谢谢。

1 个答案:

答案 0 :(得分:0)

我稍微调整了代码以返回预期的行为。例如转移到array索引。

done(){
console.log('Running done(). index: ' + this.index);
 //I removed the this.index++ here;
 if(this.index>2) this.index=0;
 this.name=this.strs[this.index];
 this.nameState2='active';

}

next(){
 this.index++; // <=== I removed the comment here.
 //if(this.index>2) this.index=0;
 //this.name=this.strs[this.index];
 this.nameState2='inactive';
}
  

我在index++函数上移动了next()。但是在控制台上它仍然会调用done()两次。 但是名称/索引的行为应该正常工作。