angular5.2 用ngComponentOutlet 添加的组件没有bind ngif?怎么破?

描述如题,求大神指点
代码
父组件
html:
<ng-container *ngComponentOutlet="switchComponent"></ng-container>
ts:
public switchComponent = null;
constructor() {

this.switchComponent = PatientRecordComponent;

}
子组件
<div *ngif="false">ssss</div>

clipboard.png
尝试解决方法
父组件
html:
<ng-container *ngComponentOutlet="switchComponent; ngModuleFactory: myModule;"></ng-container>
ts:
import {NgModuleFactory, Compiler} from '@angular/core';
import {PatientRecord} from '../common/patient/record/record.module';
public switchComponent = null;
myModule: NgModuleFactory<any>;
constructor(compiler: Compiler) {

this.myModule = compiler.compileModuleSync(PatientRecord);
this.switchComponent = PatientRecordComponent;

}

阅读 2.5k
1 个回答

你需要在AppModule或者你的这个组件对应的module里面导入CommonModule

import { CommonModule } from '@angular/common';
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    CommonModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})

因为*ngFor *ngIf这些指令是在CommonModule中定义,并且导出来给外部用的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题