Javascript Angular 2 NgFor Regex消息错误-[(ngModel)]有效,但ngModel未定义
我试图在ngFor循环中使用带有regex要求的输入,但得到了一个“无法读取未定义属性'valid'的错误”,我使用该错误作为页面加载时弹出的错误消息 这是我目前的代码: (我使用的键管道是自定义管道,因为项是由对象组成的对象,因此可以将包含的对象分解为键/值对。)Javascript Angular 2 NgFor Regex消息错误-[(ngModel)]有效,但ngModel未定义,javascript,regex,angular,ngfor,Javascript,Regex,Angular,Ngfor,我试图在ngFor循环中使用带有regex要求的输入,但得到了一个“无法读取未定义属性'valid'的错误”,我使用该错误作为页面加载时弹出的错误消息 这是我目前的代码: (我使用的键管道是自定义管道,因为项是由对象组成的对象,因此可以将包含的对象分解为键/值对。) 尝试使用elvis运算符,例如:[hidden]=“id?.valid | | id?.pristine”是否验证7位数字?使用pattern=“[0-9]{7}”我认为查看“键”管道实现将您的regexp放入regexp测试仪并查
尝试使用elvis运算符,例如:
[hidden]=“id?.valid | | id?.pristine”
是否验证7位数字?使用pattern=“[0-9]{7}”
我认为查看“键”管道实现将您的regexp放入regexp测试仪并查看它告诉您的内容和匹配的内容会有所帮助。您确定ngModel未定义吗?因为属性值
属于项
。最好显示错误的完整行。只是为了向大家展示,因为人们经常会犯愚蠢的错误。regexp[\d{7}]
的意思是“一个字符,可以是数字、左花括号、数字7或右花括号”。
<div *ngFor="let item of items | keys">
<md-input-container>
<input
mdInput
placeholder={{item.placeholder}}
name={{item.name}}
pattern="[\d{7}]*"
[(ngModel)]="item.value.currentValue"
#id="ngModel"
>
</md-input-container>
<div
[hidden]="id.valid || id.pristine"
>
<div [hidden]="!id.hasError('pattern')">
*Describe required pattern here*
</div>
</div>
</div>
transform(value): any {
const keys = [];
for (const key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}