Angular 2中如何用ngValue生成双值?下拉框如何同时存id与method
Angular 2 下拉框绑定多值问题解答
针对你提出的两个下拉框相关问题,我来帮你一步步解决:
1. 如何在Angular 2中使用ngValue绑定多值?
其实ngValue本身就是用来绑定完整对象的,它不像[value]只能绑定单一的字符串/数字类型。你不需要刻意“生成两个值”,只需要把包含多个属性的对象直接绑定到ngValue上,选中选项时,ngModel绑定的变量就能拿到这个对象的所有属性。
2. 如何同时存储user.id和user.method到单个绑定值中?
你当前用[value]="user.id"只能把id存到update.business_type里,要同时保留id和method,只需要把[value]替换成[ngValue],并绑定整个user对象即可。这样选中选项后,update.business_type会被赋值为对应的user对象,里面自然包含id和method两个属性。
修改后的完整代码:
<select #businesstype class="form-control" id="business_type" required [(ngModel)]="update.business_type" name="business_type" #Type="ngModel"> <option disabled>Select</option> <option *ngFor="let user of users" [ngValue]="user">{{user.method}}</option> </select>
后续使用小提示:
- 之后你可以通过
update.business_type.id获取选中项的ID,update.business_type.method获取对应的方法名称。 - 如果需要把这个对象提交给后端,记得根据后端接口要求,要么把对象序列化为JSON字符串,要么单独提取
id和method字段再提交。 - 要确保
users数组里的每个user对象都存在id和method属性,避免出现属性未定义的报错。
这样调整后就能完美满足你的需求啦~
内容的提问来源于stack exchange,提问作者Hariprasath
相关产品推荐
相关产品推荐

