Угловое раскрытие в дизайне материалов - PullRequest
0 голосов
/ 29 марта 2019

У меня есть следующий выпадающий список в мат.

<ng-container matColumnDef="loadType">
                    <mat-header-cell class="loadType" *matHeaderCellDef>Load Type</mat-header-cell>
                    <mat-cell class="loadType" *matCellDef="let row"> 
                        <select class="load-type-incremental" [value]="row.loadType" (change) = "changeLoadType(row.fileType, $event.target.value)">
                            <option [value]="true">Incremental</option>
                            <option [value]="false">Full</option>  
                        </select>
                    </mat-cell>
                </ng-container>

Вот источник данных

<mat-table [dataSource]="fileTypeIncremental.dataSource">

Событие изменения значения в раскрывающемся списке обрабатывается методом changeLoadType . А внутри него в соответствии с некоторым условием источник данных может быть изменен.

changeLoadType(type: string, loadType: string): void{
    if(loadType === "false"){
      //check popup
      let dialogRef = this.confirmationDialog.open(ConfirmationDialog, {disableClose: true});
      let instance = dialogRef.componentInstance;
      instance.confirmMessage = "Are you sure you want to do a Full data refresh? All existing data of the selected type will be truncated";

      dialogRef.afterClosed().subscribe(result => {
        if(result) {
          this.fileTypeIncremental.changeLoadType(type, (JSON.parse(loadType)));
        }
        dialogRef = null;
      });
    }
    else{
      this.fileTypeIncremental.changeLoadType(type, (JSON.parse(loadType)));
    }
  }

Мне нужен Dropdown для отображения фактического состояния источника данных ([value] = "row.loadType") независимо от того, что было выбрано в Dropdown. Эти 2 параметра в раскрывающемся меню необходимы только для запуска события.

enter image description here

...