我的项目结构:
1.Edit.component.ts
share - folder
2.one.component.ts
3.two.component.ts
Fileds - folder
4.three.component.ts
我正在使用Subject at Service来更新共享文件夹子和兄弟组件内部的数据,并将数据提供给父级。
它非常适用于直接共享文件夹组件。但不适用于three.component.ts。我不知道为什么它没有从three.components更新。但我确信数据正确传递了服务。
Edit.components.ts
constructor(
private service: Service,
private route: ActivatedRoute,
private router: Router
) { this.updateDataFromForm(); }
updateDataFromForm() {
this.service.formData.subscribe(data => {
this.formData = data;
});
}
one.component.ts,two.component.ts,three.component.ts
consturctor(private service: Service)
ngOnint() {
this.updateFormData()
}
updateFormData() {
this.formGroup['valueChanges']
.debounceTime(500)
.subscribe(data => { this.service.formUpdate(data)})
}
Service.ts
formDataSource = new Subject<any>();
formData = this.formDataSource.asObservable();
formUpdate(data){
this.formDataSource.next(data)
}