Я создал общую службу данных, которая должна отправлять выпадающий выбор из 1 компонента в компонент, который является внуком его брата.но я не могу заставить его работать.
Общая служба:
@Injectable()
export class LiveDataService {
private subject: BehaviorSubject<MyData> = new BehaviorSubject<MyData>(null);
public currentValue(): MyData {
return this.subject.value;
}
public changeValue(data: MyData): void {
this.subject.next(data);
}
public getValue(): Observable<MyData> {
return this.subject.asObservable();
}
}
Отправка компонента
@Component({
})
export class MainComponent {
constructor(private liveDataService: LiveDataService) {}
onDropdownChange() {
this.liveDataService.changeValue({id: event.value} as MyData);
}
}
Получение компонента
@Component({
})
export class AnotherComponent implements OnInit {
constructor(private liveDataService: LiveDataService) {}
ngOnInit() {
this.liveCutoffData.getValue().subscribe((myData) => {
this.myData = myData;
this.doSomething(this.myData);
});
}
}
my.module.ts
@NgModule({
declarations: [
MainComponent,
AnotherComponent,
],
imports: [
...
],
providers: [
LiveDataService,
],
})
export class MyModule {
}
Из журналов видно, что MainComponent отправляет изменения.Однако AnotherComponent не получает эти изменения, и ничего не происходит