【问题标题】:How to resolve invalid issue in template driven form angular 8如何解决模板驱动形式角度 8 中的无效问题
【发布时间】:2020-05-28 21:57:06
【问题描述】:

在模板驱动的表单中,我遇到了错误:

ERROR TypeError: Cannot read property 'invalid' of undefined  

我不知道为什么会这样。如何解决这个问题?

app.component.html:

<form name="form" (ngSubmit)="f.form.valid && onSubmit()" #f="ngForm" novalidate>
<div class="form-group">
                <label for="categoryName">Category Name:</label>
                <input type="text" class="form-control" name="categoryName" [(ngModel)]="cate.categoryName" minlength="5" #categoryname="ngModel" [ngClass]="{ 'is-invalid': f.submitted && categoryName.invalid }" required/>
                <div *ngIf="f.submitted && categoryName.invalid" class="invalid-feedback">
                    <div *ngIf="categoryName.errors.required">
                        Category Name is required
                    </div>
                </div>
                <div *ngIf="categoryName?.touched && categoryName?.errors.minlength" class="invalid-feedback">
                    Category Name must be at least 5 characters long.
                </div>
            </div>
</form>

app.component.ts:

  cate: any = {}; 
  onSubmit() {
      alert(this.cate.categoryName);
  }

【问题讨论】:

    标签: typescript angular8


    【解决方案1】:

    在您的模板中:

    categoryName.invalid
    

    但我看不到任何将 categoryName 设置为某物的地方。

    你可以这样“修复”它

     categoryName?.invalid
    

    请注意,#categoryname 和 categoryName 不相同(小写与大写“n”)。

    【讨论】:

    • 好的..非常感谢
    • 但有时我收到 ERROR TypeError: Cannot read property 'minlength' of null
    • 这部分categoryName?.errors.minlength 如果设置了categoryName 但其error 属性值为null,则会抛出此错误。您可以通过编写 `categoryName?.errors?.minlength 以同样的方式解决它
    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2019-06-16
    • 2019-03-03
    相关资源
    最近更新 更多