Con enumerazioni di stringhe puoi provare questo.
mio enum stringa ha la seguente definizione:
enum StatusEnum {
Published = <any> 'published',
Draft = <any> 'draft'
}
e si traduce in js nel seguente modo:
{
Published: "published",
published: "Published",
Draft: "draft",
draft: "Draft"
}
ho un paio di questi nel mio progetto così creato la funzione piccolo aiuto nella un servizio condiviso lib:
@Injectable()
export class UtilsService {
stringEnumToKeyValue(stringEnum) {
const keyValue = [];
const keys = Object.keys(stringEnum).filter((value, index) => {
return !(index % 2);
});
for (const k of keys) {
keyValue.push({key: k, value: stringEnum[k]});
}
return keyValue;
}
}
Init nel tuo componente constructor e Bi ND al vostro modello come questo:
In componente:
statusSelect;
constructor(private utils: UtilsService) {
this.statusSelect = this.utils.stringEnumToKeyValue(StatusEnum);
}
in Template:
<option *ngFor="let status of statusSelect" [value]="status.value">
{{status.key}}
</option>
Non dimenticare di aggiungere l'UtilsService alla matrice fornitore nel vostro app.module. così puoi facilmente iniettarlo in diversi componenti.
Sono un principiante dattiloscritto quindi per favore correggimi se sbaglio o se ci sono soluzioni migliori.
Aggiungerò ancora una modifica nell'associazione per lavorare keys.push ({chiave: parseInt (enumMember, 10), value: value [enumMember]}); – Mihail