【发布时间】:2018-11-22 18:08:22
【问题描述】:
我正在构建一个应该是动态的网络表单。
当用户从列表中选择一个选项时,会根据他的输入生成下一个表单输入。
例如:
<mat-form-field>
<mat-select placeholder="Type" [(ngModel)]="row.Type" (change)="TypeChosen(row.Type, row)">
<mat-option [value]="0">Treatment</mat-option>
<mat-option [value]="1">Travel</mat-option>
<mat-option [value]="2">Medication</mat-option>
<mat-option [value]="3">Equipment</mat-option>
</mat-select>
</mat-form-field>
如果他选择“治疗”类型,他会得到另一个选择输入,其中包含一些选项和一些其他输入,如果他选择不同的类型,他会得到不同的选项和其他输入。
我了解我需要动态生成 HTML 内容,并且可能需要动态组件。
以简单的方式做到这一点的最佳方法是什么?
【问题讨论】:
-
动态组件可以...因为 Angular 不允许从您的 ts 文件中放入动态 html(您可以使用 domsanatizer 做到这一点)
-
你为什么不使用
*ngIf指令?这就是 html 在 Angular 中的工作方式,还有一些其他指令,它们的语法中也包含*。 -
@PranayRana 因为我没有经验,所以一个例子会对我有所帮助。谢谢。
-
@Korte 有太多的选项和条件流程,
*ngIf使代码复杂化并使其混乱。 -
我仍然建议将 *ngIf 与包含条件的短函数结合使用。像 *ngIf="shouldIshowX()" 和 shouldIshowX() { return condition1 && condition2 && !condition3 }
标签: html angular dom angular-forms