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(...) на самом деле выполняется или какой-то другой компонент предка дальше по цепочке.

Другие вопросы по тегам