Angular 2 NgFor Regex 消息错误 - [(ngModel)] 有效但 ngModel 未定义
Angular 2 NgFor Regex Message Error - [(ngModel)] works but ngModel is undefined
我试图在 ngFor 循环中输入具有正则表达式要求的输入,但在我用作错误消息的地方出现“无法读取未定义的 属性 'valid'”错误在页面加载时弹出。
这是我目前的代码:
(我的键管道是自定义管道,因为 item 是由对象组成的对象,因此将包含的对象分解为 key/value 对。)
<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>
根据我读过的一些教程(例如 this one),我想这会起作用,但我显然遗漏了一些东西。
编辑
因为有人要求,这里是钥匙管道。这是一个基本的管道,类似的管道在网络上随处可见:
transform(value): any {
const keys = [];
for (const key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
尝试使用 elvis 运算符,如下所示:[hidden]="id?.valid || id?.pristine"
我试图在 ngFor 循环中输入具有正则表达式要求的输入,但在我用作错误消息的地方出现“无法读取未定义的 属性 'valid'”错误在页面加载时弹出。
这是我目前的代码:
(我的键管道是自定义管道,因为 item 是由对象组成的对象,因此将包含的对象分解为 key/value 对。)
<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>
根据我读过的一些教程(例如 this one),我想这会起作用,但我显然遗漏了一些东西。
编辑
因为有人要求,这里是钥匙管道。这是一个基本的管道,类似的管道在网络上随处可见:
transform(value): any {
const keys = [];
for (const key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
尝试使用 elvis 运算符,如下所示:[hidden]="id?.valid || id?.pristine"