我试图做出某种我的组件之间的通信的,所以我用了这样的组件与BehaviorSubject服务和订阅:
服务(代码相关的问题):
import { BehaviorSubject } from 'rxjs/BehaviorSubject'
private _clientModalActionSource = new BehaviorSubject<string>('')
modalAction$ = this._clientModalActionSource.asObservable()
public updateClientModalAction(action) {
this._clientModalActionSource.next(action)
console.log('sent')
}
A组份:
this._api.updateClientModalAction(id)
B组份:
import { Subscription } from 'rxjs/subscription'
private _subscription: Subscription
ngOnInit() { this._subscription = this._api.modalAction$.subscribe(res => {
this.refreshModal(res)
console.log('received')
})}
这是可以正常使用,如果组分B是组分A的孩子,但如果A是根组件,B是它的内部<router-outlet>
(或相反的)没有被接收到订阅,我只得到sent
在控制台。
我究竟做错了什么?