错误TypeError:无法读取null的属性'clientId'

时间:2018-02-22 22:04:35

标签: javascript angular typescript angular4-forms

单击我的对象后,我将组件更改为另一个组件以更新此对象。 在这个用于更新的组件中,我有一个包含select元素的表单,其中的选项应该使用数据库中的值进行初始化(在方法OnInit中)

我需要默认从这个值列表中选择我的对象的值

 <label>Catégorie Client:</label>
 <select class="form-control" [(ngModel)]="client.clientId" >
     <option></option>
     <option *ngFor="let client of clients" [value]="client.clientId">{{client.name}}</option>
 </select>

问题是客户端可以为null,我希望在这种情况下将<option></option>显示为具有空值的默认值,但是我收到错误

  

无法读取空值

我实例化了我的对象......

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

[(ngModel)]="client.clientId"生成错误。此处未提供client,您已在option代码

中对其进行了声明

请注意[value]="xxx"仅支持字符串,如果您的clientId是数字,则最好选择[ngValue]="xxx"

 <label>Catégorie Client:</label>
 <select 
   class="form-control" 
   [(ngModel)]="selectedClient" >
   <option></option>
   <option 
     *ngFor="let client of clients" 
     [ngValue]="client"
   >
   {{client.name}}
   </option>
 </select>

selectedClient需要由clients

中的一项初始化

ConnorsFan所述,您可以将selectedClient保留为null,这样就不会在开头选择任何内容。