2016-09-20 9 views
0

私はTypescriptとAngular 2を扱っています。 いくつかのjsonデータから動的に列挙型を作成したいと思います。 たとえば、ドロップダウンメニューにenumを設定し、jsonからオプションを取得したいとします。これを行う方法?jsonに格納されているTypescript列挙

+0

あなたが必要とするような音は、項目のリストを表示することです、なぜenumsを気にしますか? – toskv

答えて

1

Typescriptでは、enumsはJS配列として変換されます(Enums in TypeScript: what is the JavaScript code doing?参照)。

したがって、列挙型を動的にロードする場合は、配列をロードするだけで済みます。

しかし、あなたの目標は、この列挙のうちの選択を作成することであるならば、あなたはあなたのdefinetly JSONをデシリアライズし、組み込みselectとコンポーネントに渡し、*ngForを使用して、オブジェクトからoption Sを作成する必要があります。

最も簡単な方法は、あなたのJSONこの方法をフォーマットするために、次のようになります。

{ 
    "selectData":[ 
        { 
         "key":"foo", 
         "value":"bar" 
        } 
       ] 
} 

この方法で、あなたのJSONをロードして、あなたの選択を作成するためにkeyvalue値を使用して、selectDataアレイ上で反復することができます。

+0

これは私が探している形式です。 しかしそれを列挙する方法を解析する方法。 http.getを介してデータを取得し、ページが読み込まれたときに購読します。 –

+0

@DilyanGeorgievなぜenumが必要ですか?それは実行時に何か意味のあるものでもありません。列挙型は、ビルド時およびコンパイル時にのみ使用できます。 – toskv

+0

実行時の部分がJavascriptであるため、列挙型は実行時に作成できるものではありません。私が言ったように列挙型は単なる配列です。 jsonの結果を 'subscriber'で' JSON.parse'し、 'yourJsonObj.selectData'をデータバインディングを使ってselectコンポーネントに渡すだけです。 – Supamiu

関連する問題