Javascript Angular 2 NgFor Regex消息错误-[(ngModel)]有效,但ngModel未定义

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测试仪并查

我试图在ngFor循环中使用带有regex要求的输入,但得到了一个“无法读取未定义属性'valid'的错误”,我使用该错误作为页面加载时弹出的错误消息

这是我目前的代码:

(我使用的键管道是自定义管道,因为项是由对象组成的对象,因此可以将包含的对象分解为键/值对。)


尝试使用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;
  }