0

我有这个md-select

<md-select
      class="pull-right"
      [options]="nodeNames"
      (handleChange)="onChange($event)"
      optionLabel="name"
      overlayClass="common-md-select-drop-down"
      scrollHeight="350px"
      [(ngModel)]="selectedServer"
    >
</md-select>

在我的.ts文件中,我的onChange函数如下所示:

public onChange(event): void {
    this.selectedServer = event.value.name;
    this.getJobStatusData(this.selectedServer);
}

所以,我想要的是当我从下拉列表中选择一个项目并导航到其他组件并返回到该组件时,我希望下拉列表具有先前选择的值。因此,在我的情况下,selectedServer包含选定的值。我怎么做?

编辑 1

<md-select
      class="pull-right"
      [options]="nodeNames"
      (handleChange)="onChange($event)"
      optionLabel="name"
      overlayClass="common-md-select-drop-down"
      scrollHeight="350px"
      [(ngModel)]="selectedServer"
      (ngModelChange)="onModelChange(selectedServer, $event); selectedServer = $event;"
    >
    </md-select>
4

1 回答 1

2

最简单的解决方案是localStorage用于此目的:

将值存储在 localStorage 中,当导航到同一个组件时,只需读取该值并设置:

   public onChange(event): void {
    localStorage.setItem('selectedServer' : event.value.name);
    this.selectedServer = event.value.name;
    this.getJobStatusData(this.selectedServer);
   }

现在在ngOninit组件中:

this.selectedServer = localStorage.getItem('selectedServer') || '';
于 2021-08-16T11:54:18.310 回答