Я пытаюсь добавлять компоненты динамически ngOnInit.При создании компонента я получаю эту ошибку.
"Uncaught (in promise): Error: Template parse errors: 'ion-title' is not a
known element"
Вот мой код:
TS:
import { Component,Input, OnInit, Compiler, Injector, VERSION, ViewChild,
NgModule, NgModuleRef, ViewContainerRef, AfterViewInit,
ComponentFactoryResolver } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { ViewController } from 'ionic-angular';
@Component({
selector: 'page-cashbalancemodal_rpt',
template: '<ng-container #dynamicTemplate></ng-container>',
})
export class Cashbalancemodal_rptPage {
@ViewChild('dynamicTemplate', {read: ViewContainerRef})
viewContainerRef;
constructor(){.......}
ngOnInit() {
let template = this.navParams.get("modaltemplate");
let myTemplateUrl = "assets/templates/"+template+".html";
const tmpCmp = Component({
templateUrl: myTemplateUrl
})(class {});
const tmpModule = NgModule({
declarations: [tmpCmp],
entryComponents: [tmpCmp],
})(class {});
this._compiler.compileModuleAndAllComponentsAsync(tmpModule)
.then((factories) => {
const f = factories.componentFactories[0];
const cmpRef = this.viewContainerRef.createComponent(f);
cmpRef.instance.name = 'dynamic';
})
}
}
Я сталкивался со многими решениями.Одним из наиболее часто используемых решений является добавление «IonicModule» в app.module.ts.Я тоже это сделал.Но не могу избавиться от этой ошибки.
app.module.ts
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
@NgModule({
imports: [
BrowserModule,
IonicStorageModule.forRoot(),
HttpModule,
IonicModule.forRoot(MyApp),
ComponentsModule,
],
})
Пожалуйста, помогите решить эту ошибку.