@mantovpinets

Как передать объект компоненту, если он компилится перед запуском программы?

Здравствуйте.

Использую bootstrap для angular (ngx-bootstrap) и столкнулся с такой проблемой. У меня есть компонент personalInfo, который отображается при клике на строку таблицы. Компонент отображается в модальном окне следующим образом:

ShowPersonalInfo(person:any): void{
		this.PersonalInfoModal = this.PIService.show(PersonalInfoComponent, {class: 'modal-lg'});
		this.PersonalInfoModal.content.title = "Профиль врача";
		this.personalInfo.getInfo(person.id).then(data => {
			console.log(data.json());
			this.PersonalInfoModal.content.person = data.json();
		});
	}


Так как компонент компилируется динамически, англяр требовал указать этот компонент в app.module в секции entryComponents. Я указал, сделал всё, что надо. Но теперь у меня не идёт пересылка объектов компонентам, которые вложены в компонент PersonalInfoComponent. Сам PersonalInfoComponent имеет следующий вид:
<div class="modal-header">
  <h4 class="modal-title pull-left">{{title}}</h4>
  <button type="button" class="close pull-right" aria-label="Close" (click)="PIModal.hide()">
    <span aria-hidden="true">&times;</span>
  </button>
</div>
<div class="modal-body">
  <tabset>
    <tab heading="Общая" id="tab1">
      <div class="content">
        <general-info [info]="person.general"></general-info>
      </div>
    </tab>
    <tab heading="Проф. информация">
      <div class="content">
        <prof-info [info]="person.prof"></prof-info>
      </div>
    </tab>
  <tab heading="Личная">
    <div class="content">
        <private-info [info]="person.personal"></private-info>
      </div>
  </tab>
  <tab heading="Приезды">
    <div class="content">
      <arrivals></arrivals>
    </div>
  </tab>
  <tab heading="Последипломная подготовка">
    <div class="content">
      <post-diploma></post-diploma>
    </div>
  </tab>
  <tab heading="Прочие">
    <div class="content">
      <other-info></other-info>
    </div>
  </tab>
  <tab heading="История">
    <div class="content">
      <history-info></history-info>
    </div>
  </tab>
</tabset>
</div>
<div class="modal-footer">
  <button type="button" class="btn btn-default" (click)="PIModal.hide()">Close</button>
</div>


Как быть и что нужно сделать, чтобы эти компоненты скомпилировались к тому моменту, как все данные придут из сервера? Сейчас при запуске у меня пишет следующее:
GeneralInfoComponent.html:1 ERROR TypeError: Cannot read property 'surname' of undefined
at Object.eval [as updateRenderer] (GeneralInfoComponent.html:11)
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы