通过angular5中的innerHtml加载组件

时间:2018-02-20 07:14:20

标签: angular

在我的应用程序中有9个小部件,每个小部件都有一个缩放选项。为了显示缩放选项,创建了常用的缩放组件以显示缩放的组件。

单击缩放选项,选择的组件名称将传递给缩放组件,并创建html标记以及组件名称,并尝试通过innerHtml显示组件,但组件未出现在缩放组件中。

尝试使用mat-progress-bar static html

  

放大component.html

<div  style="border:2px solid green" #dataContainer></div>
  

放大component.component.ts

export class ProjectDetailsComponent implements OnInit {
  @ViewChild('dataContainer') dataContainer: ElementRef;
ngOnInit() {
    this.widget = "<mat-progress-bar></mat-progress-bar>";
    this.dataContainer.nativeElement.innerHTML = this.widget;
}
}

通过直接innerHTML通过错误

<div [innerHTML]="{{widget}}" style="border:2px solid green"></div>

分析器错误:插值({{}})其中表达式位于[{{widget}}]的第0列

1 个答案:

答案 0 :(得分:1)

第一期它的语法错误,因为你得到错误:

  

分析器错误:得到插值({{}}),其中表达式是预期的   在[{{widget}}]

的第0列

更改自:

[innerHTML]="{{widget}}"

[innerHTML]="widget"

第二期:要动态加载组件,您不能使用innerHtml,您应该使用 componentFactoryResolver