Rea*_*ues 16 angular2-forms angular
我在获取从Angular 2(RC1)中的选择列表中选择的对象的属性时遇到问题.采用以下语法:
<select required [(ngModel)]="model.plan">
<option selected="selected" disabled>Plan...</option>
<option *ngFor="#plan of plans" [value]="plan">{{ plan.name }}</option>
</select>
Run Code Online (Sandbox Code Playgroud)
其中plans
定义为对象数组:
[{ name: 'Plan 1' }, { name: 'Plan 2' }]
Run Code Online (Sandbox Code Playgroud)
如果您尝试输出所选对象的某个键的值,则不会显示任何内容:
<p>{{ model.plan?.name }}</p> // Shows nothing if a plan is selected
Run Code Online (Sandbox Code Playgroud)
这是Angular2表单现场演示的一个分支,显示了这个问题.从选择列表中选择"计划2",然后看到没有显示任何内容.
这里发生了什么?
Gün*_*uer 23
使用对象作为值使用[ngValue]
而不是[value]
.[value]
仅支持字符串ID.
<select required [(ngModel)]="model"> <!-- <== changed -->
<option selected="selected" disabled>Plan...</option>
<option *ngFor="#plan of plans" [ngValue]="plan">{{ plan.name }}</option>
</select>
Run Code Online (Sandbox Code Playgroud)
model
需要指向其中一个元素plans
作为默认值(它需要是同一个实例,而不是另一个包含相同值的实例).