Angular 2: разрешение данных маршрута в дочернем компоненте

#angular #angular2-routing #angular2-components

#angular #angular2-маршрутизация #angular2-компоненты

Вопрос:

У меня есть компонент, который загружается (маршрутизируется) при успешном разрешении данных с использованием преобразователей на уровне маршрутизатора. Данные, полученные с сервера, должны быть переданы дочерним компонентам. Данные разрешены и соответственно переданы, но дочерний компонент выдает ошибку

попытка доступа из неопределенного

.

Сценарий:

HTML родительского компонента:

  <parent>
   <child [_data]="dataFromResolver"></child>
 </parent>
  

Родительский компонент.ts

 export class Parent implements OnInit {

    dataFromResolver: any;

    constructor(private route: ActivatedRoute) {
    }

    ngOnInit() {
        this.route.data.forEach((data: any) => {
          this.dataFromResolver = data;
        });
    }
}
  

Служба распознавания:

 resolve(route: ActivatedRouteSnapshot): Observable<boolean | any> {
    return this.parentService.getData().map(output => {
        if (output) {
            return output;
        } else {
            this.router.navigate(['/login']);
            return false;
        }
    });
}
  

Дочерний компонент.ts

 @Input() _data(value: any) {
        this.data = value;
    }


    data: any;
  

HTML дочернего компонента

 <p>{{data.name}}</p>
  

Маршрут также был настроен соответствующим образом, и я могу видеть данные, поступающие на вкладке сеть инструментов браузера.

Пожалуйста, дайте мне знать, если я чего-то не понимаю.

Ответ №1:

Обнаружена ошибка, которую я пропустил set после @Input() . Грубая ошибка.