Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 将两个值绑定到选择框的模型中_Html_Angular_Typescript - Fatal编程技术网

Html 将两个值绑定到选择框的模型中

Html 将两个值绑定到选择框的模型中,html,angular,typescript,Html,Angular,Typescript,我目前有一个选择框,其中包含从后端获得的用户列表。目前,此选择框绑定到my ng模型的name属性 但是,user对象还包含一个email属性,我希望在用户从下拉菜单中选择名称时,将该属性绑定到模型中的email属性以及name属性 这能做到吗 下面是我当前的选择框,它可以很好地绑定到我的ng模型中的name属性: <select [(ngModel)]="model.name" name ='name'> <option value="">--Select a

我目前有一个选择框,其中包含从后端获得的用户列表。目前,此选择框绑定到my ng模型的name属性

但是,user对象还包含一个email属性,我希望在用户从下拉菜单中选择名称时,将该属性绑定到模型中的email属性以及name属性

这能做到吗

下面是我当前的选择框,它可以很好地绑定到我的ng模型中的name属性:

<select [(ngModel)]="model.name" name ='name'>
    <option value="">--Select a User--</option>
    <option *ngFor="let user of users" [value]="user.name">{{user.name}}</option>
</select>

如果选择整个对象,您应该能够选择电子邮件和用户的姓名。

通过在“选择选项”的“我的用户”数组中循环时获取索引并使用此索引作为值,解决了此问题。然后,我在select标记上添加了一个change属性,该属性使用此索引从我的users数组中获取信息,并将其正确设置为模型:

<select class="form-control" [(ngModel)]="selectedUser" name ='name' (change)="userChange()">
    <option value="" selected="true">--Select a User--</option>
    <option *ngFor="let user of users; let i=index" [value]="i">{{user.name}}</option>
</select>

对不起,我认为我没有正确理解:你想要两个不同的选择,一个用于用户,一个用于电子邮件?他们一定有联系吗?我是说,当您选择user=John时,第二次选择应自动john@xxx.com?@alesssz基本上我希望一个选择框在用户从一个选择框中选择一个名称时更新ngModel:name和email上的两个属性。那么name属性不包含完整的用户对象吗?这意味着当值为将名称和电子邮件属性更新为正确值的更改?如果模型类型与用户类型相同,则默认情况下应更新模型。如果没有,您可以触发一个事件并更新这些值。谢谢,但是当尝试绑定到一个对象时,模型一直需要一个字符串,因此我得到了返回的[object]。我试着在模型中设置一个名为user的属性,用object类型保存user对象,然后用any类型保存user对象,但它总是作为对象字符串返回
<select class="form-control" [(ngModel)]="selectedUser" name ='name' (change)="userChange()">
    <option value="" selected="true">--Select a User--</option>
    <option *ngFor="let user of users; let i=index" [value]="i">{{user.name}}</option>
</select>
userChange() {
    this.model.name = this.users[this.selectedUser].name;
    this.model.email = this.users[this.selectedUser].email;
}