Ich habe ein Formular für ng-select-Komponente, die die Rollen eines Benutzers in meinem Angular 4-Projekt zeigt. In dieser Komponente muss ich zuerst die Benutzerrollen abrufen und sie als Standardwerte anzeigen. Um das zu tun, verwende ich FormControls in ngOnInit. Da die Standardwerte von einem Service abgerufen werden, werden sie entsprechend der Initialisierung der FormGroup so langsam geladen. Ich rufe beide in ngOnInit auf, aber jedes Mal, wenn die FormGroup läuft. Daher kann ich keine der Standardwerte auf dem Bildschirm sehen. Ich habe versucht, es asynchron zu machen, aber ich konnte es nicht tun.Eckig 4 ng-wählen Dynamische Standardwerte
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;
}
}
}
Es sagt, bekommen, ist nicht definiert. Ich habe mehrere Dinge ausprobiert, um einen Kontrollwert zu setzen, aber das Programm stürzt ab und sagt, dass das, was ich geschrieben habe, undefiniert ist. – esdoodle
@esdoodle ich habe meine bearbeitet. Hoffe, das wird helfen. – fastAsTortoise