如何在 Angular 中获取 md-select 的先前值

How to get previous value of md-select in Angular

我有这个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>

最简单的解决方案是为此目的使用 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') || '';