我有一个添加组模块,其中有用户列表,我正在使用angular2-select进行多项选择。单击按钮即可打开添加组页面。这是代码
<ng-select [options]="users" [multiple]="true" [(ngModel)]="group.selectedUsers" placeholder="select users" name="users"></ng-select>
我正在填写此API响应数据
ngOnInit() {
this.userService.getAllUsers()
.subscribe(data => {
data.forEach(element => {
this.users.push({ value: element.id, label: element.firstName});
});
})
}
现在,当我第一次打开添加组页面时,用户列表为空。第二次打开后填写用户列表。我错过了什么吗?
答案 0 :(得分:2)
我想问题是你的this.users
仍然是同一个对象,所以如果你将项目推送到它,angular将不会检测到更改。因此,组件不会更新,您的选项也不会显示。
要实现这一点,您应该让this.users
指向新的Array
:
ngOnInit() {
this.userService.getAllUsers().subscribe((data) => {
this.users = data.map((element) => {
return {
value: element.id,
label: element.firstName
};
});
});
}