如何在 Typescript 中保持枚举列表中的顺序

问题描述 投票:0回答:1

我创建了一个枚举列表,并希望将其用作角度中的下拉列表,但该列表会自动对我的列表进行排序,而不是将其显示为我写为枚举的顺序。

我的枚举:

    export enum Cars {
      VOLVO= "Volvo",
      AUDI = "Audi",
      VOLKSWAGEN = "Volkswagen",
      NISSAN = "Nissan"
    }

下拉菜单输出:

  • 奥迪
  • 日产
  • 大众汽车
  • 沃尔沃

ts 文件:

    carlist: Cars;
    car: Car;

我的下拉菜单 html 文件:

      <p-dropdown [options]="carsList | keyvalue"
              [(ngModel)]="car.name" optionLabel="value" optionValue="key"
              placeholder="Choose"></p-dropdown>

有没有办法将订单保留在我的枚举文件中提供的下拉列表中

我已经尝试在 stackoverflow 和其他论坛上寻找答案。

angular typescript enums primeng
1个回答
0
投票

来自

KeyValuePipe
文档

输出数组将按键排序。

要自定义排序,您需要提供

compareFn

<p-dropdown
  [options]="carlist | keyvalue: unsort"
  [(ngModel)]="car.name"
  optionLabel="value"
  optionValue="key"
  placeholder="Choose"
></p-dropdown>
unsort = (a, b) => 0;

演示@StackBlitz

© www.soinside.com 2019 - 2024. All rights reserved.