Структура моего проекта:
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.Я не знаю, почему он не обновляется с трех компонентов.Но я уверен, что данные прошли сервисы правильно.
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)
}