获取对象可能为“ null”。在Angular模板文件中

时间:2018-12-27 09:38:23

标签: angular typescript angular-template

在我的Angular应用中,出现以下错误:

  

对象可能为'null'。

问题是我收到此错误不是由于某些打字稿代码,而是由于此html模板:

  <form [formGroup]="form">
    <timepicker [formControlName]="'myControl'"></timepicker>
  </form>

  <br>
  <button class="btn btn-succes" (click)="form.get('myControl').enable()">Enable Control</button>
  <button class="btn btn-warning" (click)="form.get('myControl').disable()">Disable Control</button>
  <br><br>

  <pre class="alert alert-info">Time is: {{ form.get('myControl').value }}</pre>

1 个答案:

答案 0 :(得分:0)

启用标志--strictNullChecks并解决该错误时,需要在访问其属性之前检查一个对象是否不为空。

例如,在这种情况下:

<button (click)="form.get('myControl').enable()"></button>

在调用form对象之前,我们首先需要检查get(...)对象是否为空:

<button *ngIf="form" (click)="form.get('myControl').enable()"></button>

或者,可以将多个html元素包装在一个<ng-container>中,以避免重复ngIfs:

<ng-container *ngIf="form">
  <form [formGroup]="form">
    <timepicker [formControlName]="'myControl'"></timepicker>
  </form>

  <br>
  <button class="btn btn-succes" (click)="form.get('myControl').enable()">Enable Control</button>
  <button class="btn btn-warning" (click)="form.get('myControl').disable()">Disable Control</button>
  <br><br>

  <pre class="alert alert-info">Time is: {{ form.get('myControl').value }}</pre>
</ng-container>