У меня большой проект, в котором я делаю несколько HTTP-вызовов GET для API, чтобы получить разные данные. Я хотел бы объединить их в один вызов (я уже создал его и вложил json со всеми данными), проблема в том, что я не могу передавать данные между компонентами. Позвольте мне объяснить проблему. Это вызов:
get(entityType: string): Promise<any> {
return this.http
.get<any>(
this.location.prepareExternalUrl("./assets/temp-data/LEV_page/organisation.json")
)
.take(1)
.toPromise();
}
В моем основном компоненте я делаю это:
public entityType:string;
public dataSource;
constructor(private levsService: LinkedEntityVocabulariesService) {}
ngOnInit() {
this.entityType = localStorage.getItem("currentEntityType");
this.levsService.get(this.entityType).then(data => {
this.dataSource = data;
});
}
Если я хочу использовать dataSource
в этом компоненте, он работает нормально, но когдаЯ пытаюсь передать его дочернему компоненту следующим образом:
<app-properties [send]="dataSource"></app-properties>
И затем просто получить к нему доступ:
@Input("send") send;
constructor() {}
ngOnInit() {
console.log("test", this.send);
}
Все, что я получаю, это test undefined
, потому чтоон передает его до получения данных (хотя я думал, что использование Promise
вместо Observable
предотвратит это).
В любом случае, мой вопрос: могу ли я позвонить, чтобы получить данные, а затем передатьэто между компонентами вместо вызова API снова? Если да, как я могу сделать это с приведенным выше примером? Заранее спасибо!