在我的 Angular 4 项目中,我有一个 ng-select 组件的表单,它显示了用户的角色。在该组件中,首先我需要获取用户角色并将它们显示为默认值。为了能够做到这一点,我在 ngOnInit 中使用 FormControls。因为我从服务中获取默认值,所以根据 FormGroup 的初始化,它们的加载速度非常慢。我在 ngOnInit 中调用它们,但每次 FormGroup 之前运行。所以我在屏幕上看不到任何默认值。我试图让它异步,但我做不到。
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
this.userTC = params['id'];
this.getUserInfo(this.userTC); // This function works second
});
// This part works first
this.form = new FormGroup({
roles: new FormControl(this.defaultRoles)
});
}
getUserInfo(tc) {
this.userService.getUser(tc).subscribe(data => {
if(data) {
let arr = new Array<string>();
for(i = 0; i < data.roles.length; i++) {
switch(data.roles[i]) {
case "admin" :
arr[i] = '1';
break;
case "doktor" :
arr[i] = '2';
break;
case "hasta" :
arr[i] = '3';
break;
case "lab" :
arr[i] = "4";
break;
}
}
this.defaultRoles = arr;
}
}
}