代码之家  ›  专栏  ›  技术社区  ›  The KNVB

为什么反应式表单验证会导致“无法读取未定义的属性'errors'”?

  •  -3
  • The KNVB  · 技术社区  · 6 年前

    我的代码存在于 here .

    我要将CallTreeEntry对象绑定到表单。

    我想把表格分成三组。

    1. 一个是CallTreeEntry属性,
    2. 一个用于CallTree对象
    3. 一个用于手动对象

    所以,我可以单独验证上面的对象。

    但是,我在重新加载网页时收到以下错误消息。

    ERROR Error: Cannot read property 'errors' of undefined
    

    删除以下代码时,错误消息将消失。

      <mat-error *ngIf="division.errors">
        Division Name is <strong>required</strong>
      </mat-error>    
    

    the Form validation page of Angular web site .

    我在代码中添加了以下函数,但是它不起作用。

    get name() { 
       return this.callTreeEntryForm.get('name'); 
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jasdeep Singh    6 年前

    问题在你的 mat-error 条件语句。不能像这样检查值。 如果要在窗体控件有效时显示错误,则需要更改错误条件。

    请在模板(HTML)中使用以下内容:

      <mat-error *ngIf="attributes.controls['division'].hasError('required')">
        Division Name is <strong>required</strong>
      </mat-error>