RESTfulサービスから次のデータを取得します。
[
{
"id": 42,
"type": 0,
"name": "Piety was here",
"description": "Bacon is tasty, tofu not, ain't nobody like me, cause i'm hot...",
}...
そして、私はこのクラスでマッピングしています:
export enum Type {
Info,
Warning,
Error,
Fatal,
}
export class Message{
public id: number;
public type: Type:
public name: string;
public description: string;
}
しかし、Angular2の 'type'にアクセスすると、int値しか取得できません。しかし、文字列値を取得したいです。
例えば:
'message.type=0'
{{message.type}} => should be Info
'message.type=1'
{{message.type}} => should be Warning
TypeScriptの列挙型は実行時の数値なので、message.type
は0
、1
、2
、または3
になります。
文字列値を取得するには、その番号をインデックスとして列挙に渡す必要があります。
Type[0] // "Info"
したがって、あなたの例では、これを行う必要があります:
Type[message.type] // "Info" when message.type is 0
TypeScriptの列挙型は、すべての可能な値に対してint -> string
およびstring -> int
からのプロパティを持つ実行時のオブジェクトです。
文字列値にアクセスするには、以下を呼び出す必要があります。
Type[0] // "Info"
チェーンされた呼び出しは次の結果になる可能性があるため、正しいタイプをプロパティアクセサーに渡していることを確認してください。
Type[Type.Info] // "Info"
Type[Type[Type.Info]] // 0
Type["Info"] // 0
Type[0] // "Info"
と思う
{{message.type}}
列挙型ではなく、マップされた値を取得するだけです。次のコードを試してください。
{{TYPE[message.type]}}