小编Daw*_*owa的帖子

取消订阅页面更改事件

当我不断向导航堆栈添加页面时,会创建越来越多的 SimpleComponent 类实例。出于这个原因,我不止一次订阅“ev”事件并不止一次触发代码。

您可以通过在我的 plunker 示例中转到“那里”和“返回”并在不同情况下触发事件来检查这一点(检查控制台警告以获取结果)。您还可以看到,即使您回到导航堆栈的顶部,您仍然拥有订阅。

ionViewWillLeave 不工作可能是因为它不是我要离开的实际视图

我想知道我该怎么做才能避免这种情况?我希望像旧式 AngularJS 指令一样包含 SimpleComponent,因为我在我的应用程序中多次使用它。

这里是plunker

export class SimpleComponent {
  constructor(private ev: Events) {
    this.ev.subscribe('ev', e => {
      console.warn(e[0]);
    });  
  }
}


// home.ts template
    <simple-component></simple-component>
    <button (click)="go()">Go next page</button>
    <button (click)="raiseEv()">Raise Event</button>
Run Code Online (Sandbox Code Playgroud)

events ionic2 angular

2
推荐指数
1
解决办法
1918
查看次数

标签 统计

angular ×1

events ×1

ionic2 ×1