背景
一个带有菜单和两个页面的离子应用程序(Home和list)。
Home页面在ionViewWillEnter上订阅事件
并在ionViewWillUnload上取消订阅。
正确情况:
使用Home启动应用程序,并订阅事件。
如果切换菜单并单击“从List到Home”,则事件将取消订阅。
重新输入Home并订阅事件。
错误情况:
应用程序从Home开始,并订阅了事件。
切换菜单>单击Home >
控制台:
事件订阅
事件未订阅
结果是在Home页面上取消订阅的事件。
欲望情境
输入Home(从其他页面/从菜单重新输入)>订阅事件一次。
让Home(到其他页面/从菜单重新加载相同的页面)取消订阅事件一次。
游乐场
我期望进入和卸载来对。
如果重新输入同一页,则应在输入前运行卸载。
然而,事实并非如此。
请建议一种适当的(Un)订阅事件的方式
谢谢。
发布于 2018-06-26 12:03:55
import { Component, OnInit, OnDestroy } from '@angular/core';
import { NavController, Events } from 'ionic-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage /*implements OnInit, OnDestroy*/ {
constructor(public navCtrl: NavController,
public events: Events) {}
ionViewWillEnter() {
console.log("ion enter info subscribed");
this.events.subscribe('get-info');
this.events.subscribe("value",(data) => {
console.log("ion enter info subscribed");
this.events.subscribe('get-info');
});
}
ionViewWillUnload() {
console.log("ion unload info unsubscribed");
this.events.publish('value',true)
this.events.unsubscribe('get-info');
}https://stackoverflow.com/questions/51040477
复制相似问题