在组件中使用ngOnInit方法来初始化订阅。具体方法如下:
在service中定义一个Subject对象来发送数据:
private subject = new Subject();
sendData(data: any) {
this.subject.next(data);
}
getData(): Observable {
return this.subject.asObservable();
}
在要接收数据的组件中,在ngOnInit方法中订阅数据:
ngOnInit(): void {
this.subscription = this.service.getData().subscribe(data => {
this.data = data;
});
}
在要发送数据的组件中,调用发送数据的方法:
sendData() {
this.service.sendData(this.data);
}
这样,在组件之间导航时也会触发订阅和发送数据的方法,不再只在页面刷新时加载订阅数据。
上一篇:Angular订阅只会触发一次