Проблема разрешения данных с помощью ActivatedRouteSnapshot и Observables - PullRequest
0 голосов
/ 08 мая 2020

У меня проблема с наблюдаемыми в Angular 2. Я могу получать данные из БД с помощью службы и могу console.log данные в моих файлах службы и преобразователя, но я не могу передать данные в свой компонент .

Я использую службу для запроса базы данных:

getExamQuestion(query) {
  return this.http.get('api/question/1/1').pipe(tap(data => {
    console.log("questiondata", data)  // This logs the expected data
  }));
}

constructor(
      private examdataservice:ExamdataService){
    }
    resolve(route: ActivatedRouteSnapshot) {

      return this.examdataservice.getExamQuestion(route.params).pipe(tap(data => {
    console.log("questiondata", data)  // This logs also the expected data
  }));
     
    }

У моего компонента следующий код, но я не могу получить данные из службы / преобразователя:

ngOnInit(): void {
    this.qData = this.route.snapshot.data['ExamResolver']
    console.log("data", this.qData) // This logs 'undefined'
  }

Как я могу получить доступ к разрешенным данным для моего компонента? Мы будем благодарны за любой совет.

1 Ответ

1 голос
/ 08 мая 2020

Вы должны настроить свой маршрут, чтобы разрешенные данные были доступны в вашем компоненте. Например, у вас должен быть такой маршрут к вашему компоненту:

{
  path: 'path/to/your/component',
  component: YourComponent,
  resolve: {
    examQuestions: YourResolver
  }
}

И тогда вы можете получить доступ к данным в вашем компоненте:

  ngOnInit(): void {
    this.qData = this.route.snapshot.data['examQuestions'];
    console.log("data", this.qData); // This logs 'undefined'
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...