RXJS组件间超越父子关系的相互通讯

RXJS组件间超越父子关系的相互通讯

用到这个的需求是这样的: 组件A有数据变化,将变化的数据流通知组件B接收这个数据流并作相应的变化this

实例化RXJS的subject对象

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
/**
 * 事件总线,组件之间能够经过这个服务进行通信
 */
@Injectable()
export class EventBusService {
    public maintenance: Subject <any> = new Subject<any>();
    constructor() { }
}

这里经过一个对象类,封装了,能够单独写code

在组件A中发送数据流

this.maintenanceService.getFlowChart(data.status).subscribe(res => {
   this.eventBusService.maintenance.next(res);
});

在组件B监听数据流的变化,并接收数据流

this.eventBusService.maintenance.subscribe((data) => {
    if (data) {
        alert(data);
    }
 });
相关文章
相关标签/搜索