我有一个ng-select组件的表单,它显示了我的Angular 4项目中用户的角色。在该组件中,首先我需要获取用户角色并将它们显示为默认值。为了做到这一点,我在ngOnInit中使用FormControls。因为我从服务中获取默认值,所以根据FormGroup的初始化,它们的加载非常缓慢。我在ngOnInit中调用它们,但每次FormGroup都在之前运行。所以我看不到屏幕上的任何默认值。我试图使它异步,但我无法做到这一点。Angular 4 ng-select动态默认值
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;
}
}
}
它说,得到的是不确定的。我已经尝试了几件事来设置一个控制值,但程序崩溃,并说我写的东西是不确定的。 – esdoodle
@esdoodle我编辑了我的。希望这会有所帮助。 – fastAsTortoise