Je reçois d'un service RESTful les données suivantes:
[
{
"id": 42,
"type": 0,
"name": "Piety was here",
"description": "Bacon is tasty, tofu not, ain't nobody like me, cause i'm hot...",
}...
Et je mappe avec cette classe:
export enum Type {
Info,
Warning,
Error,
Fatal,
}
export class Message{
public id: number;
public type: Type:
public name: string;
public description: string;
}
Mais lorsque j'accède à 'type' dans Angular2, je n'ai qu'une valeur int. Mais j'aimerais obtenir une valeur de chaîne.
par exemple:
'message.type=0'
{{message.type}} => should be Info
'message.type=1'
{{message.type}} => should be Warning
Les énumérations dans TypeScript sont des nombres au moment de l'exécution, donc message.type
sera 0
, 1
, 2
ou 3
.
Pour obtenir la valeur de chaîne, vous devez passer ce nombre dans l'énumération sous forme d'index:
Type[0] // "Info"
Donc, dans votre exemple, vous devrez faire ceci:
Type[message.type] // "Info" when message.type is 0
Les énumérations dans TypeScript sont des objets au moment de l’exécution qui ont des propriétés allant de int -> string
et de string -> int
pour toutes les valeurs possibles.
Pour accéder à la valeur de la chaîne, vous devrez appeler:
Type[0] // "Info"
Assurez-vous cependant que vous passez le type correct dans l'accesseur de propriété, car les appels en chaîne peuvent avoir les conséquences suivantes:
Type[Type.Info] // "Info"
Type[Type[Type.Info]] // 0
Type["Info"] // 0
Type[0] // "Info"
Je pense avec
{{message.type}}
vous obtenez juste la valeur mappée et non l'énumération. S'il vous plaît essayez de suivre le code.
{{TYPE[message.type]}}