【发布时间】:2021-08-23 04:47:23
【问题描述】:
出现了一个有趣的问题。
有一个组件可以监听如下主题:
export interface ToolPanel {
title ?: string;
buttons: Button [];
}
然后它只显示 ngFor 模板中的按钮。
现在您需要添加在按钮下显示选择列表或文本区域的功能吗?
如何正确扩展组件(模板)的功能?
模板为:
<div class="row" *ngFor="let tool of tools.toolPanels$">
{{tool.title}}
<!-- Here can be input, select or textarea -->
</div>
我想扩展接口:
export interface ToolPanel {
title ?: string;
buttons: Button [];
type: 'formField'
}
然后签入模板:
<div class="row" *ngFor="let tool of tools.toolPanels$">
{{tool.title}}
<div *ngIf="tool.type === 'formField'">
<app-formfield [type]="tool.type"></formfield>
</div>
</div>
【问题讨论】:
-
我认为ToolPanel中的类型应该使用Enum作为数据类型,这个枚举应该包含所有不同的类型,如果type是强制的那么你可以去掉ngIf,
-
好的,但是如果需要,如何显示按钮和输入字段后?
-
实现应根据@input 处理其显示 -
这只是我对
<app-formfield>的假设。我没有得到你 -
Angular 中的动态模板怎么样?
标签: angular