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

时间:2017-07-14 16:31:44

标签: javascript regex angular ngfor

我正在尝试在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;
  }

1 个答案:

答案 0 :(得分:1)

尝试使用elvis运算符,如下所示:[hidden]="id?.valid || id?.pristine"