Angular 6: невозможно прочитать свойство undefined после второй инициализации динамически созданного компонента - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь создать компонент динамически, который имеет класс модели для инициализации.

Вот моя проблема, с которой я сталкиваюсь: Console Error

Это работает, когда я создаю компонент один раз, а затем, когда я пытаюсь второй раз, это говорит о проблеме

Вот мои коды:

.HTML

<div [formGroup]="articleCategoryGeneralBodyEditForm">
 <input type="hidden" formControlName="category_details_language_id" [(ngModel)]="article_category_detail.category_details_language_id">
 <div class="row">
  <div class="col-sm-12">
   <div class="form-group">
    <label for="category_details_name"><strong class="form-control-required">*</strong> Category Name</label>
    <input type="text" class="form-control" id="category_details_name" placeholder="Enter category name | ex: Parent" formControlName="category_details_name" [(ngModel)]="article_category_detail.category_details_name">
   </div>
  </div>
 </div>
</div>

.COMPONENT.TS

export class ElSubGeneralBodyEditComponent implements OnInit {

// Models
article_category_detail: ArticleCategoryDetail = new ArticleCategoryDetail();

// Form
articleCategoryGeneralBodyEditForm: FormGroup;

constructor(public _DataSharerService: DataSharerService, private _ToasterService: ToasterService, private _BlogArticleCategoryService: BlogArticleCategoryService) { }

setForm() {
  this.articleCategoryGeneralBodyEditForm = new FormGroup({
    category_details_name: new FormControl(),
    category_details_language_id: new FormControl()
  });
  this.article_category_detail.category_details_language_id = this._DataSharerService.getLanguageId()[0];
}

ngOnInit() {
  this.setForm();
}
}

Вот как я создаю компонент динамически:

createEditFormComponent() {

this.editFormContainerRef.clear();
const factory: ComponentFactory<any> = this.resolver.resolveComponentFactory(ElCategoriesEditComponent);
this.componentRef = this.editFormContainerRef.createComponent(factory);
this.componentRef.instance.thisComponentRef = this.componentRef;
}

И вот как я уничтожаю созданный компонент:

onClose() {
  this.thisComponentRef.destroy();
}

/* Please be noted, ElCategoriesEditComponent is a parent component of ElSubGeneralBodyEditComponent */

Я сделал то же самое для других компонентов,они работают нормально, за исключением различий между другими компонентами, и этот компонент (ElCategoriesEditComponent) состоит в том, что этот компонент имеет дочерний компонент.

Я знаю, что трудно описать проблему, подобную этой, или, возможно, я не смогЧтобы сделать это более понятным, пожалуйста, спросите меня, если вам нужна дополнительная информация.

Любая помощь спасет меня в долгосрочной перспективе.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...