Angular 角度6-从下拉列表中选择的默认选项

Angular 角度6-从下拉列表中选择的默认选项,angular,angular6,Angular,Angular6,对于我的问题,我没有找到任何有希望的答案。所以我问了一些类似的问题。 我需要从页面加载的下拉列表中默认选择一个值。此下拉列表针对数据网格中的每一行显示。所以我的组件如下。 .ts文件: pwdSelectionItems: any[] = [ { id: 'CURRENT', name: 'CURRENT' }, { id: 'FUTURE', name: 'FUTURE' } ]; retrigger(email: CompanyEmailView)

对于我的问题,我没有找到任何有希望的答案。所以我问了一些类似的问题。 我需要从页面加载的下拉列表中默认选择一个值。此下拉列表针对数据网格中的每一行显示。所以我的组件如下。 .ts文件:


  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:

注意:我没有在页面加载时初始化任何内容

已解决的问题:
在第一行中选择一个选项将在所有其他行中填充相同的值-将模型更改为字符串[]并解析。pwdSelection:string[]=[];并在中使用[ngModel]=pwdSelection[$index]如果要在下拉列表中默认选择一个值,则需要在[ngModel]中绑定一个默认值。例如,在您的示例中,pwdSelection[$index]的值应等于“CURRENT”。这是唯一可能的办法

否则你可以保留一个额外的选项,如

<option value=undefined> ---Please Select--- </option>
<option *ngFor="let mode of pwdSelectionItems" [value]="mode.id"
                    [disabled]="mode.id=='FUTURE' && !(enableFuturePassword && entry.pswdExpiry <= expiryDate)">{{mode.name}}</option>
模板中的[ngModel]=pwdSelectionValue,组件中的pwdSelectionValue=pwdSelection[0]
<option value=undefined> ---Please Select--- </option>
<option *ngFor="let mode of pwdSelectionItems" [value]="mode.id"
                    [disabled]="mode.id=='FUTURE' && !(enableFuturePassword && entry.pswdExpiry <= expiryDate)">{{mode.name}}</option>