【发布时间】:2017-08-23 07:41:37
【问题描述】:
我有一个使用模型生成的输入字段列表。我正在尝试向他们添加验证。 要求是它们不能为空或少于 2 个字符。 问题在于文档中仅显示使用非动态生成的变量名称进行验证。我的字段都是动态生成的。所以没有 tempVariableName 我可以硬编码(否则它们会发生冲突),所以我从绑定字段的属性的名称创建了 temp 变量。所以我想出了这样的东西:
<div *ngFor="let field of connector.configFields">
<label>{{field.name}}</label>
<input [(ngModel)]="field.value" [type]="field.name === 'Password' ? 'password' : 'text'"
placeholder="{{field.name}} (required)"
ngControl="[fieldName+field.name]"
required minlength="2"
#fieldName+[field.name]="ngModel" />
<div *ngIf="(fieldName+[field.name]).errors && ((fieldName+[field.name]).dirty || (fieldName+[field.name]).touched)">
<span *ngIf="(fieldName+[field.name]).errors.required">Enter Name</span>
<span *ngIf="(fieldName+[field.name]).errors.minlength">Name minimum at 2 characters</span>
</div>
</div>
打字稿中的 configFields 看起来像这样:
export class FieldModel {
public name: string;
public type: string;
public value: any;
}
但这根本行不通。我是 Angular 2 的新手,所以我不确定我做错了什么。
【问题讨论】:
标签: html validation angular typescript