Angular select 与对象的双向绑定
Angular two-way binding for select with object
实际上,我正在尝试将对象数组绑定到 select 输入。我正在尝试这种方式,[(ngModel)]="users[i].roles",其中 'users' 是外部数组,'roles' 是用户内部的另一个数组。在这里,角色是键值对的数组,例如,
roles = [{'code': 1, 'desc: ''},{'code': 2, 'desc: ''},{'code': 3, 'desc: ''}]
如何从这个数组中绑定 'code'。
我的HTML代码,
<mat-select placeholder="User Roles" [(ngModel)]="users[i].roles" matTooltip="{{users[i].roles}}" multiple>
<mat-option *ngFor="let role of userRoles" [value]="role.code">{{role.desc}}</mat-option>
</mat-select>
把它放在一个 ngFor 中:
在 .ts 中:
roles= [{'code': 1, 'desc: ''},{'code': 2, 'desc: ''},{'code': 3, 'desc: ''}]
在.html
<div *ngFor="let role of roles;let index=index">
<input [(ngModel)]="roles[index].code">
</div>
尝试在 <div>
元素中使用 *ngFor
<div *ngFor="let role of roles">
<input type="number" [(ngModel)]="role.code">
</div>
更多详情请看这里..
感谢您的帮助。我通过这种方式修改代码解决了这个问题...
for (let user of this.users) {
user.userRoles = [];
for(let role of user.roles)
{
user.userRoles.push(role.code);
}
}
在html,
<mat-select placeholder="User Roles" [(ngModel)]="users[i].userRoles" matTooltip="{{users[i].userRoles}}" multiple>
<mat-option *ngFor="let role of userRoles" [value]="role.code">{{role.desc}}</mat-option>
</mat-select>
实际上,我正在尝试将对象数组绑定到 select 输入。我正在尝试这种方式,[(ngModel)]="users[i].roles",其中 'users' 是外部数组,'roles' 是用户内部的另一个数组。在这里,角色是键值对的数组,例如,
roles = [{'code': 1, 'desc: ''},{'code': 2, 'desc: ''},{'code': 3, 'desc: ''}]
如何从这个数组中绑定 'code'。
我的HTML代码,
<mat-select placeholder="User Roles" [(ngModel)]="users[i].roles" matTooltip="{{users[i].roles}}" multiple>
<mat-option *ngFor="let role of userRoles" [value]="role.code">{{role.desc}}</mat-option>
</mat-select>
把它放在一个 ngFor 中:
在 .ts 中:
roles= [{'code': 1, 'desc: ''},{'code': 2, 'desc: ''},{'code': 3, 'desc: ''}]
在.html
<div *ngFor="let role of roles;let index=index">
<input [(ngModel)]="roles[index].code">
</div>
尝试在 <div>
元素中使用 *ngFor
<div *ngFor="let role of roles">
<input type="number" [(ngModel)]="role.code">
</div>
更多详情请看这里..
感谢您的帮助。我通过这种方式修改代码解决了这个问题...
for (let user of this.users) {
user.userRoles = [];
for(let role of user.roles)
{
user.userRoles.push(role.code);
}
}
在html,
<mat-select placeholder="User Roles" [(ngModel)]="users[i].userRoles" matTooltip="{{users[i].userRoles}}" multiple>
<mat-option *ngFor="let role of userRoles" [value]="role.code">{{role.desc}}</mat-option>
</mat-select>