Итак, у меня есть это приложение Angular, и сейчас мы просто загружаем данные из файла json, пока мои друзья не запустят базу данных, но у меня возникла проблема: данные никогда не кажутся Кто-нибудь может взглянуть на мой код и сказать, что я делаю неправильно? Вот мой код службы данных:
export class DataService {
public positionsData: Position = {
id: 'empty',
name: 'empty',
title: 'empty',
routing: 'empty',
email: 'empty',
children: []
};
public loaded = false;
constructor(private http: HttpClient) {
setTimeout(() => {this.loadData}, 15);
}
loadData(): void {
this.http.get<Position>('./sponsorview_data_4_22.json').subscribe( (updatedPositions: Position) => { this.positionsData = updatedPositions; this.loaded = true;});
}
и вот компонент, где мне нужны эти данные:
ngOnInit(): void {
this.authSubscription = this.accountService.getAuthenticationState().subscribe(account => (this.account = account));
if(!this.dataService.loaded) {
this.datasource = this.dataService.getPositions();
setTimeout(() => {this.loadDatasource();}, 370)
}
}
loadDatasource(): void {
console.log('one round in loadDatasource');
if(this.dataService.loaded) {
console.log("data loaded and initialized");
this.datasource = this.dataService.getPositionsToDepth(this.dataService.getPositions(), 3);
this.rootViewNodeId = this.datasource.id;
this.focusedNodeId = this.datasource.id;setTimeout(this.loadDatasource, 37);
} else {
setTimeout(() => {this.loadDatasource()}, 370)
console.log("data not yet loaded");
}
}