Angular中的Angular材质选择动态数据绑定

时间:2018-07-02 04:27:33

标签: angular angular-material angular6 angular-material-6

我正在使用Angular 6和Angular Material。当我单击“编辑”按钮时,将在选择时初始化次要,SSC和男性值。但是我做不到。单击“编辑”按钮后,我只能在下拉列表中显示“男性”值。所以我想在下拉列表中显示所有值,并通过对象进行动态选择。谢谢。

我的代码链接在这里:stackblitz link

2 个答案:

答案 0 :(得分:7)

您可以尝试使用此解决方案

我已经在Stackblitz上创建了一个演示

  

Component.ts

  editInfo(educationInfo) {
    this.education_level = educationInfo.aa;
    this.exam_title = educationInfo.bb;
    this.gender = educationInfo.cc;
    this.educationLevelChangeAction(this.education_level);
  }

  educationLevelChangeAction(education) {
    this.exam_title = "";
    let dropDownData = this.educationList.find((data: any) => data.educationLevelName === education);
    if (dropDownData) {
      this.degreeTitleList = dropDownData.degreeTitleList;
    } else {
      this.degreeTitleList = [];
    }

  }
  

Component.html

<mat-form-field>
  <mat-select placeholder="Select Level of Education" name="education_level" (selectionChange)="educationLevelChangeAction(education_level)" [(ngModel)]="education_level" >
    <mat-option *ngFor="let education of educationList" [value]="education.educationLevelName" >{{ education.educationLevelName }}</mat-option>
  </mat-select>
</mat-form-field>

<mat-form-field>
  <mat-select placeholder="Select Exam/Degree Title" name="exam_title" [(ngModel)]="exam_title">
    <mat-option *ngFor="let degreeTitle of degreeTitleList" [value]="degreeTitle">{{ degreeTitle }}</mat-option>
  </mat-select>
</mat-form-field>

<mat-form-field>
  <mat-select [(ngModel)]="gender">
    <mat-option *ngFor="let gender of genderList" [value]="gender">{{ gender }}</mat-option>
  </mat-select>
</mat-form-field>



<p>You selected: {{education_level}}  {{exam_title}} {{gender}}</p>

答案 1 :(得分:1)

在您的代码中,您将对象绑定到[value],因此它无法正确地绑定它,如果您像在“性别”部分中那样将值更改为字符串,则可以,例如:

[value]从作为对象的education更改为作为字符串的education.educationLevelName,现在可以正常使用了。

<mat-form-field>
  <mat-select placeholder="Select Level of Education" name="education_level" (selectionChange)="educationLevelChangeAction(education_level)" [(ngModel)]="education_level" >
    <mat-option *ngFor="let education of educationList" [value]="education.educationLevelName" >{{ education.educationLevelName }}</mat-option>
  </mat-select>
</mat-form-field>
相关问题