Попытка загрузить данные из файла json через запрос http - PullRequest
0 голосов
/ 24 апреля 2020

Итак, у меня есть это приложение 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");
    }

  }

1 Ответ

2 голосов
/ 24 апреля 2020

Я не думаю, что вы должны вызывать Http-запрос на JSON без сервера. Кроме того, вы можете получить данные JSON напрямую, как это.

this.positionsData = JSON.parse('./sponsorview_data_4_22.json');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...