Ionic Angular中使用EventEmitter事件驱动实现不同页面通讯
有时候我们想在一个页面中改变另一个页面的状态。就比如我们在Login页面执行登录,登录成功后返回到User页面。在User页面中显示用户是否登录状态。 或者我们想在A页面执行事件通知B页面处理一些业务。
这个时候我们就可以用EventEmitter事件驱动来实现。
1、Eventemitter Github地址:
https://github.com/primus/eventemitter3
2、安装配置EventEmitter:
npm install --save eventemitter3
3、定义公共的服务配置EventEmitter:
import { Injectable} from '@angular/core'; import {EventEmitter} from 'eventemitter3'; @Injectable({ providedIn: 'root' }) export class EventService { public eventEmit: any; constructor() { // 定义发射事件 this.eventEmit = new EventEmitter(); } }4、用户中心页面监听事件广播
import { EventService } from '../services/event.service'; this.eventService.eventEmit.on('login',(result)=>{ console.log('执行'); })
5、登录页面返回的时候发送广播
import { EventService } from '../services/event.service'; ionViewDidLeave(){ this.eventService.eventEmit.emit('login','登录页面退出了'); }