【angular5项目积累总结】消息订阅服务

时间:2023-03-09 07:36:47
【angular5项目积累总结】消息订阅服务

code

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class CommonService {
private notify = new Subject<any>();
/**
* Observable string streams
*/
notifyObservable$ = this.notify.asObservable(); constructor() { } public notifyOther(data: any) {
if (data) {
this.notify.next(data);
}
}
}

项目示例

表单提交后更新其他组件数据列表

定义:

  constructor(
private router: Router,
private actRouter: ActivatedRoute,
private appStoreService: AppStoreService,
private comService: CommonService) {
this.subscribeUpdate(comService);
} subscribeUpdate(comService: CommonService) {
this.comService.notifyObservable$.subscribe(data => {
if (data == 'refreshWebApp') {
this.loadWebApp();
}
}, error => {
console.log(`subscribe error:${error}`)
})
}

调用:

this.comService.notifyOther('refreshWebApp');