2014-01-11 8 views
5

私は質問の配列に基づいてフォームを作成する必要がある角度のあるプロジェクトに取り組んでいます。配列の質問ごとにng-modelを作成したいと思います。{{式}}でng-modelを動的に作成できません。

私は以下のようなものを考え出しましたが、うまくいきません。

<div class="form-group" data-ng-repeat="question in questions"> 
    <label for="{{question.label}}" class="col-md-2 control-label"> 
     {{question.label}}: 
    </label> 
    <div class="col-md-10"> 
     <input type="text" 
       class="form-control" 
       name="{{question.label}}" 
       data-ng-model={{question.label}} 
       required /> 
     <span class="error" 
       data-ng-show="formQuickView.{{question.label}}.$error.required"> 
      Required! 
     </span> 
    </div> 
</div>     

誰かが私を助けてくれますか?
ヒープを事前にお知らせください。

答えて

7
formQuickView[question.label].$error.required 

これは通常のJavaScriptシンタックスです。 question.labelで定義された名前のformQuickViewのプロパティにアクセスしたいとします。

アップデートはどういうわけか私は、ng-model表現を主なポイントを逃しました。基本的にはここで同じことをします。

  • その後、questions[question.label]を使用し、questionsを言って、自分のスコープにオブジェクトを追加します。次の2つの選択肢(技術的には一つだけ)を持っています。
  • フォームを作成したら、名前を付けてオブジェクトを自動的に追加します。例えば。 <form name="questions" ....および上記と同じである。
+0

おかげで、私の主な問題は、NG-モデルである:あなたのNG-モデルでこれを試してみてください。 {{expression}}のようなモデルを作成することはできますか? – loveNZ

+0

@loveNZ申し訳ありませんが、質問を更新しました。 – zeroflagL

4

ng-modelは、スコープのプロパティを参照する式として渡された文字列を考慮{{}}では動作しません。

コードを正しく理解しているかどうかわかりません。あなたのコードでは、私はdata-ng-model="question.label"が動作するはずだと思います。

labelフィールドで指定された動的フィールドを参照する場合。そのため

<input type="text" ng-model="question[question.label]"/> 

DEMO

+0

ありがとうございました。このng-model = "question.value"のようなもので動作しました。次に、すべての質問オブジェクトのvalueプロパティをループして値を取得します。 – loveNZ

+0

@loveNZ: 'data-ng-model =" question.label "'に関する私の声明はうまくいきますか? –