【发布时间】:2017-10-17 23:24:33
【问题描述】:
我有 2 个用户类型的对象:
-
users拥有完整的用户列表。 -
selectedUsers有getUsersBySid从 db 返回用户列表
所以我只想将getUsersById:selectedUsers 给出的用户标记为选中,我尝试了这个,但它不起作用:
<select multiple materialize="material_select" [materializeSelectOptions]="selectedUsers" [(ngModel)]="selectedUsers" name="users">
<option value="" disabled selected>Usuarios</option>
<option *ngFor="let user of users" [ngValue]="users" [selected]="selectedUsers.id === user.id">{{ user.name }} ({{ user.email }}) </option>
</select>
从数据库中检索用户的函数:
getUsersBySid(){
this.surveyService.getUsersBySid(this.selectedSurvey)
.subscribe(
users => {
this.selectedUsers = users;
console.log(this.users);
console.log(this.selectedUsers);
},
error => {
this.alertService.error("error cargar usuarios");
}
);
}
Console.log():
用户(3 个用户对象):
(3) [Object, Object, Object]
0:Object
id:"1"
name:"administrador"
pass:"21232f297a57a5a743894a0e4a801fc3"
__proto__:Object
1:Object
2:Object
length:3
__proto__:Array(0)
selectedUsers(1 个用户对象):
(1) [Object]
0:Object
id:"1"
name:"administrador"
pass:"21232f297a57a5a743894a0e4a801fc3"
__proto__:Object
length:1
__proto__:Array(0)
编辑 2:
如果我打印两个对象,我可以看到 selectedUsers 正在更改,但下拉菜单未标记为选中 selectedUsers
<select multiple materialize="material_select" [materializeSelectOptions]="selectedUsers" [(ngModel)]="selectedUsers" name="selectedUsers">
<option value="" disabled selected>Usuarios</option>
<option *ngFor="let user of users" [ngValue]="user">{{ user.name }} ({{ user.email }}) </option>
</select>
Selected: {{selectedUsers}}<br/>
Users: {{users}}
【问题讨论】:
标签: angular angular2-template angular2-forms