У меня есть одна форма, которая редактирует пользователя администратором, и мне нужно сделать выбор, чтобы получить значения 'roleList' и отредактировать роль пользователя. У меня есть этот класс для пользователя
export class User {
account: Account;
cap: string;
codiceFiscale: string;
cognome: string;
comune: string;
dataNascita: Date;
id: string;
indirizzo: string;
nazione: Nazione;
nome: string;
numeroTelefono: string;
provincia: Provincia;
}
А во вложенном объекте «account» есть еще один объект «listaRuoli», который представляет собой массив (правила back-end).
Account.ts
export class Account {
email?: string;
id?: string;
listaRuoli?: Ruoli[];
password: string;
username: string
}
Ruoli.ts
export class Ruoli{
id: string;
nomeRuolo: string;
}
Теперь я создаю один select, который отображает роли, но не t отредактируйте их
user-edit.component.ts
user: User;
roleList: Ruoli[];
constructor(
private _authHttp: AuthHttpService,
private _route: Router,
private _roleHttp: RoleHttpService
) {
this.user = new User();
this.user.account = new Account();
this.user.provincia = new Provincia();
this.user.nazione = new Nazione();
this.user.account.listaRuoli = [];
}
....
updateUser() {
this._authHttp.updateUser(this.user).subscribe((user) => {
this.user = user;
alert('Utente modificato' + this.ruolo);
});
this._route.navigate(['admin/user/list']);
}
getRoles() {
this._roleHttp.getRoles().subscribe(roles => {
this.roleList = roles;
})
}
Это выбор в HTML с помощью ngModule
user-edit.comp onet. html
<select class="form-control mr-sm-2" [ngModel]="user.account.listaRuoli[0].nomeRuolo" #sel>
<option *ngFor="let role of roleList" [value]="role.nomeRuolo">{{role.nomeRuolo}}</option>
</select>
Как я могу изменить роль пользователя?