网站搜索

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


在点击我的对象后,我将组件更改为另一个组件以更新此对象。在这个用于更新的组件中,我有一个表单,其中包含一个 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

[(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,这样一开始就不会选择任何内容。