проблема при создании компонента angular Dynami c - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать компонент Dynami c в версии Angular 10 У меня есть дочерний компонент с именем Category, и я хочу создать его, используя основной компонент. Дочерний компонент


  

      import { Component,Input} from '@angular/core';
        @Component({
          selector: 'app-category',
          templateUrl: './category.component.html',
          styleUrls: ['./category.component.css'],
        })
        export class CategoryComponent {

         @Input() parentCategory: string;
        constructor() {}
        }

Основной компонент


  

      import {Component, ViewChild,ViewContainerRef,ComponentFactoryResolver, OnInit} from '@angular/core';
        import { CategoryComponent } from '../category/category.component';
    
        @Component({
        selector: 'app-ads-post',
        templateUrl: './ads-post.component.html',
        styleUrls: ['./ads-post.component.css'],
        })
       
        export class AdsPostComponent implements OnInit {
        componentRef: any;
    
        @ViewChild('categorycontainer', { read: ViewContainerRef })
        container: ViewContainerRef;
    
        constructor(
        private componentFactoryResolver: ComponentFactoryResolver
        ) {}
    
        createComponent(parent: string) {
        const componentFactory = this.componentFactoryResolver.resolveComponentFactory(
          CategoryComponent
        );
    
        // add the component to the view
        const componentRef = this.container.createComponent(componentFactory);
        this.componentRef.instance.parentCategory = parent;
       }
    
       destroyComponent() {
        this.componentRef.destroy();
       }
    
       ngOnInit(): void {
        this.createComponent('');
       }
      }

HTML side 
<div #categorycontainer></div>

App.module.ts


 

       import { BrowserModule } from '@angular/platform-browser';
        import { NgModule } from '@angular/core';
    
        import { AppRoutingModule } from './app-routing.module';
        import { AppComponent } from './app.component';
        import { AdsPostComponent } from './components/ads/ads-post.component';
    
        import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
        import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
        import { CategoryComponent } from './components/category/category.component';
    
        @NgModule({
          declarations: [AppComponent, AdsPostComponent, CategoryComponent],
          imports: [
            BrowserModule,
            AppRoutingModule,
            HttpClientModule,
            BrowserAnimationsModule,
            NgbModule,
          ],
          bootstrap: [AppComponent],
          entryComponents: [CategoryComponent],
        })
        export class AppModule {}

Когда я пытаюсь создать компонент в ngOninit, я получаю эту ошибку ERROR TypeError: не удается прочитать свойство createComponent из undefined

Как я могу создать компонент динамически или я что-то пропустил? Спасибо

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