我正在尝试在ngFor循环中使用正则表达式要求的输入但是得到“无法读取属性'有效'未定义”错误,其中我正在使用当页面加载时弹出的错误消息。
此处是我的代码:
(我拥有的密钥管道是一个自定义管道,因为item是一个由对象组成的对象,因此将包含的对象分解为键/值对。)
<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;
}
答案 0 :(得分:1)
尝试使用elvis运算符,如下所示:[hidden]="id?.valid || id?.pristine"