web-dev-qa-db-ja.com

列挙型に異なる文字列を表示する方法Angular 4 typescript

文字列ベースの列挙型があります。 enumクラスを変更せずに、モーダルに異なる文字列を表示する必要があります。私のオブジェクトには列挙型が含まれています。私のコードは次のとおりです。

ENUM:

  export enum FooEnum {
        ONE,
        TWO,
        THREE
    }

HTML:

<select class="form-control"
                    type="text"
                    id="foo"
                    [(ngModel)]="obj.foo"
                    required
                    name="foo"
                    #foo="ngModel">
              <option *ngFor="let foo of fooToList()" [ngValue]="foo">{{foo}}</option>
            </select>

TypeScript:

  fooToList(): Array<string> {
    const keys = Object.keys(FooEnum);
    return keys.slice(keys.length / 2);
  }

ONEをUn、TWOをDeuxなどと見たいと思います。

注:2と4は非常に似ているため、angular 2も含めました。

6
Red fx

次のような値でも列挙型を初期化できます。

enum FooEnum { 
  ONE = 'Un',
  TWO = 'Deux',
  ... etc
}

ドキュメント を参照してください。

注:これはTypeScript 2.4で導入されました

9
Lyubomir