2017-02-13 7 views
0

私はカスタムテンプレートシステムで作業しています。ユーザがテンプレートを選択すると、角度$httpが呼び出され、テンプレートに関する情報が得られます。そのJSONレスポンスに含まれたテンプレートを投入するために必要な入力である:AngularJSでは、jsonデータを使用して入力を生成し、DOMに挿入できますか?

{ 
    "template":{ 
     "title": "Test Template", 
     "slug": "testTemplate", 
     "version": 1.0, 
     "inputs": 
     [ 
      { 
       "type": "text", 
       "name": "title", 
       "label": "Header Title" 
      }, 
      { 
       "type": "textarea", 
       "name": "intro", 
       "label": "Introduction" 
      } 
     ] 
    } 
} 

私はページ上のその入力を追加するinputsのそれぞれの値を使用したいと思います。私は、入力がテキスト、数値、選択、テキストエリア、ファイルなどであるかどうかわからないと仮定しなければならない。私は、生成された入力を返すパラメータを与えるためにディレクティブを使う必要があると仮定し、おそらくng-repeatとしてページに表示されます。

ヘルプ、リンク、または正しい方向へのプッシュは素晴らしいものです。

+0

$scope.inputs= [ { "type": "text", "name": "title", "label": "Header Title" }, { "type": "textarea", "name": "intro", "label": "Introduction" } ];は、JSONは常に 'inputs'が含まれているか、それが任意のHTML要素にすることができ、この例では、ちょうど私が起こっている一人です@Rikin – Rikin

+0

input''持つことが起これば、あなたが知っていますか最後にjson構造を定義します。私はそれを他のユーザーのために十分にシンプルに保ちたい。 「入力」は、任意のフォーム要素の単なる一般的な用語です。 – dcp3450

答えて

1

ここでは、すばやく作成したサンプルコードを示します.jsonは常に0以上の入力を持つという前提で動作します。

<input ng-repeat="x in inputs" type="{{x.type}}" name="{{x.name}}">{{x.label}}</input>

+0

私はそれについて考えました。 'textarea'や' select'が必要になるまで動作します。私はラッパーとそれに関連する 'ng-if'と同様のことを、入力ごとに繰り返すことができ、jsonのオプションに基づいて要素を表示します。 – dcp3450

+0

あなたが使うことができる他の方法は 'ng-bind-html'を使い、' inputs'または 'form.elements'という名前のプロパティでjsonにHTML全体を取り込ませます – Rikin

関連する問題