将最初选定的项目设置在Angular2中的选择列表中

前端之家收集整理的这篇文章主要介绍了将最初选定的项目设置在Angular2中的选择列表中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我设法得到一个选择列表来绑定我的模型以保存的目的,但是我无法解决如何使Angular2自动选择选择列表中正确的选项,如果我提供编辑功能.换句话说,如果我通过表单编辑一个预先存在的对象,我需要选择列表来反映对象的初始状态(例如选择列表中的选项5),而不是默认为第一个项目.
<select [ngModel]="originalObject">
    <option *ngFor="let object of objects" [ngValue]="object">{{object.name}}</option>
</select>

我想象它应该工作,但不是!

<select [ngModel]="originalObject">
    <option *ngFor="let object of objects" [ngValue]="object" [selected]="object === originalObject">{{object.name}}</option>
</select>

所以本质上我试图利用“选择”属性的选项,但无论什么原因,它不做任何事情.在这种情况下,’selectedObject’将是组件中可以读取的对象.

好的,所以我想出了什么问题,我认为最有用的方法.在我的情况下,因为两个对象与Javascript的角度不相同,如:它们可能具有相同的值,但它们是不同的实际对象,例如. originalObject完全独立于实质上是引用数据数组的对象(填充下拉列表).

我发现最适合我的方法是比较对象的独特属性,而不是直接比较两个对象.此比较是在已选择的绑定属性中完成的:

<select [ngModel]="originalObject">
    <option *ngFor="let object of objects" [ngValue]="object" [selected]="object.uniqueId === originalObject.uniqueId">{{object.name}}</option>
</select>

猜你在找的Angularjs相关文章