Я не нашел многообещающего ответа на мою проблему.Поэтому я спрашиваю что-то подобное.Мне нужно по умолчанию выбрать значение из раскрывающегося списка при загрузке страницы. Этот раскрывающийся список отображается для каждой строки в сетке данных.поэтому у меня есть свои компоненты следующим образом..ts file:
pwdSelectionItems: any[] = [
{ id: 'CURRENT', name: 'CURRENT' },
{ id: 'FUTURE', name: 'FUTURE' }
];
retrigger(email: CompanyEmailView) {
let isPwdChoosen = (email.pwdMode === 'CURRENT' || email.pwdMode === 'FUTURE');
if( !isPwdChoosen ) {
this.messageService.error('Please select current or future password to retrigger');
} else {
this.httpClient.post<any>('/retriggerpasswordemail',
{id: email.id, emailAddrs: email.emailAddrs, passwordSelection: email.pwdMode }).subscribe(response => {
this.messageService.success(response.successMessage);
}, errorResp => {
if (errorResp.status === 400) {
this.messageService.error(errorResp.error.errorMessage);
}
});
}
}
onPwdChange(pwdsel, email: CompanyEmailView) {
this.pwdSelection = pwdsel;
email.pwdMode = pwdsel;
}
html:
<select id="choosePwd" name="choosePwd" class="form-control-sm" [(ngModel)]="pwdSelection[$index]"
(change)="onPwdChange($event.target.value, entry)">
<option *ngFor="let mode of pwdSelectionItems" [value]="mode.id"
[disabled]="mode.id=='FUTURE' && !(enableFuturePassword && entry.pswdExpiry <= expiryDate)">{{mode.name}}</option>
</select>
</td>
Примечание. Я ничего не инициализирую при загрузке страницы.
Решенные проблемы: Выбор параметра в первой строкезаполняет то же значение во всех других строках - изменена модель на строку [] и разрешена.pwdSelection: string[] = [];
и используется [(ngModel)]="pwdSelection[$index]
в <select
Проблемы:
В раскрывающемся списке значение по умолчанию отображается пустым.Нужна опция "CURRENT", чтобы она была выбрана по умолчанию.
есть ли способ двухстороннего связывания модели без использования (change)="onPwdChange($event.target.value, entry)
Спасибо запомощь.