首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用菜单卸载时离子意外取消订阅事件

使用菜单卸载时离子意外取消订阅事件
EN

Stack Overflow用户
提问于 2018-06-26 10:20:19
回答 1查看 383关注 0票数 0

背景

一个带有菜单和两个页面的离子应用程序(Homelist)。

Home页面在ionViewWillEnter上订阅事件

并在ionViewWillUnload上取消订阅。

正确情况:

使用Home启动应用程序,并订阅事件。

如果切换菜单并单击“从ListHome”,则事件将取消订阅。

重新输入Home并订阅事件。

错误情况:

应用程序从Home开始,并订阅了事件。

切换菜单>单击Home >

控制台:

事件订阅

事件未订阅

结果是在Home页面上取消订阅的事件。

欲望情境

输入Home(从其他页面/从菜单重新输入)>订阅事件一次。

Home(到其他页面/从菜单重新加载相同的页面)取消订阅事件一次。

游乐场

离子菜单

我期望进入和卸载来对。

如果重新输入同一页,则应在输入前运行卸载。

然而,事实并非如此。

请建议一种适当的(Un)订阅事件的方式

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 12:03:55

代码语言:javascript
复制
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');

  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51040477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档