首页 文章

从单个模板角度动态创建组件

提问于
浏览
0

我想知道是否有一种角度方式,一个人可以在运行时从一般模板生成组件?

例如,如果我有一个小部件仪表板,后端服务器告诉我有多少小部件被渲染,有没有办法为每个小部件创建一个组件并将它们作为子元素添加到父仪表板组件?

这可能不是最好的方法,但出于好奇,我想知道它是否可能,如果可能,这是否是一个好习惯 .

我已经看过角度的动态组件,但是你有一个预定义的组件(比如一个模态)可以在运行时加载/卸载 .

编辑:如果我需要显示小部件,我可以使用ngFor / ngIf构造,我想要组件的原因是我想做一堆其他任务,比如基于哪个小部件设置observable .

1 回答

  • 0

    嗯,最简单的解决方案是使用一些固定的小部件,然后使用来自后端的数据和 *ngFor*ngIf 来渲染它们,即使这不是一个美丽的解决方案 .

    <div class='dashboard'>
        <ng-content *ngFor='let widget of widgets'>
            <ng-content *ngIf='widget.type == 1'><app-widget1></app-widget1></ng-content>
            ....
        </ng-content>
    </div>
    

    还有ComponentFactoryResolver可用于在运行时动态加载组件,如here所述 . 没有尝试过自己,所以我无法提供示例,但指南中有示例代码,可能符合您的需求 .

相关问题