2014-01-11 1 views
5

Я работаю над угловым проектом, где мне нужно создать форму, основанную на множестве вопросов. Я хотел бы создать ng-model для каждого вопроса в массиве.Создать ng-модель динамически с помощью {{expression}} не работает?

Итак, я придумал что-то вроде следующего, но он не работает.

<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. Вы хотите получить доступ к собственности formQuickView с именем, указанным в question.label.

Update

Как-то я пропустил главное, выражение ng-model. В принципе, вы делаете то же самое здесь. У вас есть два варианта (технически только один):

  • Добавить объект в Вашей области, скажем questions, а затем использовать questions[question.label].
  • Когда у вас есть форма, укажите имя, и объект добавляется автоматически. Например. <form name="questions" .... и то же, что и выше.
+0

Спасибо за это, но моя основная проблема нг-модель. Могу ли я создать модель, например, с {{expression}}? – loveNZ

+0

@loveNZ Извините, я обновил вопрос. – zeroflagL

4

ng-model не работает с {{}}, он рассматривает строку, переданную ему как выражение, ссылающееся на свойство scope.

Я не уверен, правильно ли понимаю ваш код. В вашем коде, я думаю, data-ng-model="question.label" должен работать.

Если вы хотите ссылаться на динамическое поле, указанное в поле label. Попробуйте это с нг-модели:

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

DEMO

+0

Спасибо, что я получил работу с чем-то вроде ng-model = "question.value", а затем сохранил цикл, связанный со всем значением свойства объекта question для получения значений. – loveNZ

+0

@loveNZ: мое заявление о 'data-ng-model =" question.label "работает? –

Смежные вопросы