Obtengo de un Servicio RESTful los siguientes datos:
[ { "id": 42, "type": 0, "name": "Piety was here", "description": "Bacon is tasty, tofu not, ain't nobody like me, cause i'm hot...", }...
Y estoy mapeando con esta class:
export enum Type { Info, Warning, Error, Fatal, } export class Message{ public id: number; public type: Type: public name: string; public description: string; }
Pero cuando accedo a "tipo" en Angular2 obtengo solo un valor int. Pero me gustaría get un valor de cadena.
p.ej:
'message.type=0' {{message.type}} => should be Info 'message.type=1' {{message.type}} => should be Warning
Los enumerados en TypeScript son numbers en time de ejecución, por lo que message.type
será 0
, 1
, 2
o 3
.
Para get el valor de la cadena, debe pasar ese número a la enumeración como índice:
Type[0] // "Info"
Entonces, en tu ejemplo, necesitarás hacer esto:
Type[message.type] // "Info" when message.type is 0
Documentos
Las inputs en TypeScript son objects en time de ejecución que tienen properties que van desde int -> string
y from string -> int
para todos los valores posibles.
Para acceder al valor de cadena necesitará llamar:
Type[0] // "Info"
Sin embargo, asegúrese de estar pasando el tipo correcto al acceso de propiedad porque las llamadas encadenadas pueden dar como resultado lo siguiente:
Type[Type.Info] // "Info" Type[Type[Type.Info]] // 0 Type["Info"] // 0 Type[0] // "Info"
Creo con
{{message.type}}
solo obtienes el valor mapeado y no el enum. Intenta seguir el código.
{{TYPE[message.type]}}