#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()
. Грубая ошибка.