Angular2 - 编辑/查看模式下的表单
Angular2 - form in Edit / View mode
我正在开发我的第一个 angular2 应用程序,我需要实现一个允许编辑和查看模式的表单。
在视图模式下,所有文本框项目都必须启用,否则当我在视图模式下时,我想显示简单的纯文本(如 span 元素)。
这样做的最佳做法是什么?
是否有一些标准组件或者我必须实现一些 ngIf?
谢谢
您可以通过为每个输入字段添加条件来实现,例如
<button type="submit" [disabled]="!myForm.form.valid">Enter</button>
这显然需要检查控制器文件中的某些表达式,例如
[disabled]="!isEditable"
如果这是真的,您可以编辑该字段
您可以使用 *ngIf
在查看模式(包含常规插值)和编辑模式(包含表单)之间切换。即:
<form #myForm="ngForm">
<div>
<label>Var 1</label>
<input *ngIf="editMode" type="text" name="var1" [(ngModel)]="var1" />
<span *ngIf="!editMode">{{var1}}</span>
</div>
</form>
这让您可以根据需要设置表单样式,但代价是要有第二行来显示值并用 *ngIf
标记每一行。
已经提到的另一个选项是您可以使用以下方法禁用表单上的控件:
<input type="text" name="var1" [(ngModel)]="var1" [disabled]="!editMode"/>
我正在开发我的第一个 angular2 应用程序,我需要实现一个允许编辑和查看模式的表单。
在视图模式下,所有文本框项目都必须启用,否则当我在视图模式下时,我想显示简单的纯文本(如 span 元素)。
这样做的最佳做法是什么?
是否有一些标准组件或者我必须实现一些 ngIf?
谢谢
您可以通过为每个输入字段添加条件来实现,例如
<button type="submit" [disabled]="!myForm.form.valid">Enter</button>
这显然需要检查控制器文件中的某些表达式,例如
[disabled]="!isEditable"
如果这是真的,您可以编辑该字段
您可以使用 *ngIf
在查看模式(包含常规插值)和编辑模式(包含表单)之间切换。即:
<form #myForm="ngForm">
<div>
<label>Var 1</label>
<input *ngIf="editMode" type="text" name="var1" [(ngModel)]="var1" />
<span *ngIf="!editMode">{{var1}}</span>
</div>
</form>
这让您可以根据需要设置表单样式,但代价是要有第二行来显示值并用 *ngIf
标记每一行。
已经提到的另一个选项是您可以使用以下方法禁用表单上的控件:
<input type="text" name="var1" [(ngModel)]="var1" [disabled]="!editMode"/>