无法读取属性'required'的null

Ban*_*dem 12 forms angular

在模板中,我有一个表单,其中一部分与渲染课程列表有关:

<form #f="ngForm" (ngSubmit)="submit(f)">
 <div class="form-group">
  <label for="courseCategory"> Category </label>
  <select required ngModel name="courseCategory" #courseCategory="ngModel" id="courseCategory" class="form-control">
    <option value=""></option>
    <option *ngFor="let category of categories" [value]="category.id"> // line 16
      {{category.name}}
    </option>
  </select>
  <div class="alert alert-danger" *ngIf="courseCategory.touched && courseCategory.errors.required">
    Course category is required
  </div>
 </div>
</form>
Run Code Online (Sandbox Code Playgroud)

在浏览器中,当我选择一个类别并按TAB(离开下拉列表)时,我在控制台上收到此错误:

CourseComponent.html:16错误TypeError:无法在Object.eval [作为updateDirectives]读取属性'required'(CourseComponent.html:20)

你能帮我找出导致这个错误的原因吗?

Boot Code 3.3.7已安装在VS代码中.

Dav*_*sta 43

错误并不总是存在,所以你必须像这样定义它:

<div class="alert alert-danger" *ngIf="courseCategory.touched && courseCategory.errors?.required">
Run Code Online (Sandbox Code Playgroud)

安全操作员"?"

  • 为什么我们使用安全运算符“?” (2认同)

C.I*_*ngo 7

我在Angular 7+中以这种方式解决了

<div *ngIf="formField.password.errors?.required" class="invalid-feedback">
Password is required
</div>
Run Code Online (Sandbox Code Playgroud)