【发布时间】:2018-11-09 13:57:49
【问题描述】:
目标
我想预先选择一个带有 [ngValue] 和 [(ngModel)] 的选择选项,其值为对象 TypeConge:
{ "id": 2, "libelle": "Holidays" }
第一次尝试
<div class="form-group col-12">
<label class="font-weight-bold" for="typeConge"> Type congé </label>
<select class="form-control" id="typeConge" name="typeConge" [(ngModel)]="conge.typeConge" >
<option [ngValue]="null"></option>
<option [ngValue]="typeCongeOption" *ngFor="let typeCongeOption of typeConges; trackBy: trackTypeCongeById">{{typeCongeOption.libelle}}</option>
</select>
</div>
{{conge.typeConge| json}}
问题:选择选项未预先选择。
第二次尝试
<div class="form-group col-12">
<label class="font-weight-bold" for="typeConge"> Type congé </label>
<select class="form-control" id="typeConge" name="typeConge" [compareWith] = 'customCompareTypeConge' [(ngModel)]="conge.typeConge" >
<option [ngValue]="null"></option>
<option [ngValue]="typeCongeOption" *ngFor="let typeCongeOption of typeConges; trackBy: trackTypeCongeById">{{typeCongeOption.libelle}}</option>
</select>
</div>
{{conge.typeConge| json}}
...
customCompareTypeConge(tc1: TypeConge, tc2: TypeConge){
return tc1.id == tc2.id;
}
问题:在控制台中我发现:无法读取 null 的属性 'id'
编辑
编辑 2
可以在this adress找到有关此问题的完整说明。
你能帮帮我吗?
谢谢!
【问题讨论】:
-
你试过[(ngModel)]="conge.typeConge.id" [ngValue]="typeCongeOption.id"吗?
-
我刚试过。它不工作。无论如何,我宁愿直接通过select来获取对象。
-
你能创建一个问题陈述的堆栈吗?
-
你是否设置了这样的初始值:
this.conge.typeConge = this.typeConges[0]?或者this.conge.typeConge = null如果你想选择第一个选项。 -
@ConnorsFan 否。初始值来自对服务器的请求。所以 this.conge.typeConge 包含对象 typeConge { "id": 2, "libelle": "Holidays" } 例如。
标签: angular