angular 8 中模板驱动形式的最小长度错误

Minlength error in template driven form in angular 8

单击提交按钮时出现以下错误。

ERROR TypeError: Cannot read property 'minlength' of null

我不知道为什么会收到这个error.So如何解决这个问题。

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>

由于您删除了错误的来源,我假设错误来自

这一行:

<div *ngIf="categoryName?.touched && categoryName?.errors.minlength" class="invalid-feedback">

此处 categoryName?.errors 为空,您尝试访问此空值的 minlength

为避免此错误,请在 .minlength 之前添加一个 ? 运算符,例如:

<div *ngIf="categoryName?.touched && categoryName?.errors?.minlength" class="invalid-feedback">
<div *ngIf="categoryName.touched && categoryName.errors?.['minlength']" ></div>