Angular2 динамический загрузчик компонентов с HTTP-запросом
Я пытаюсь загрузить данные через HTTP GET в один компонент, а затем мне нужно использовать эти данные в дочернем компоненте, который загружается динамически.
Вот код:
ngOnInit(){
this.accountService.getPersonalInfo().subscribe(
response => {
this.Account = response.json();
this.dcl.loadIntoLocation(HeaderComponent, this.elementRef, 'header')
.then(compRef => {
compRef.instance.Account=this.Account;
}
);
}
);
}
В дочернем компоненте (HeaderComponent) я могу использовать this.Account
чтобы получить эти данные. Есть лучший способ сделать это?
1 ответ
Вы можете просто предоставить в компоненте предка
@Component({
selector: 'header-cmp',
...
})
class HeaderCmp {
constructor(private account:AccountService) {
this.account.someObservable.subscribe(...); // or whatever
}
}
@Component({
selector: 'parent-cmp',
providers: [AccountService],
...
})
class ParentCmp {
constructor(private account:AccountService) {
// set some values
}
}
Компонент, в котором вы предоставляете "услугу", может быть компонентом, где this.dcl.loadIntoLocation(...)
на самом деле выполняется или какой-то другой компонент предка дальше по цепочке.