安装:
npm install --save eventemitter3
创建event.service
import { Injectable } from '@angular/core'; // var EventEmitter = require('eventemitter3'); import { EventEmitter } from 'eventemitter3'; @Injectable({ providedIn: 'root' }) export class EventService { public event:any; constructor() { this.event=new EventEmitter(); //这个实例就会被多个组件共享 来实现不同页面的数据通信 } }
使用
比如登陆成功后,更新个人中心页面数据:
登陆页面,引入事件服务:
在登陆成功后发布事件:
//通知用户中心更新用户信息 this.eventService.event.emit('useraction');
个人中心监听事件:
ngOnInit() { //监听注册 登录成功的事件 this.eventService.event.on('useraction',()=>{ var userinfo=this.storage.get('userinfo'); if(userinfo && userinfo.username){ this.userinfo=userinfo; }else{ this.userinfo=''; } }) }