использование ng-repeat для создания динамических строк для полей ввода

Очень новичок в angularjs, поэтому, пожалуйста, простите меня, если это легко.

Я хочу создать динамические строки для полей ввода, используя angularjs ng-repeat. в основном у меня есть объект вопроса, и я хочу добавить параметры к этому вопросу, по умолчанию у пользователя будет 2 строки для варианта, но он / она может добавить больше параметров к вопросу, добавив еще одну строку.

Jsfiddle

<div nd-repeat="option in question.options">
      <label>{{$index+1}}</label>
          <input type="text" ng-model="option.number" ng-change="change()" />
      <input type="text" ng-model="option.description" ng-change="change()" />
      <br/>
  </div>

в основном я сталкиваюсь с 2 проблемами:

Как мне добавить новую строку с 2 входами (пустыми) с ng-моделью и прочитать эту ng-модель обратно в контроллере? Я не хочу использовать новую опцию с какими-либо пустыми полями, я хочу, чтобы объект опции добавлялся в массив, и когда пользователь редактирует эти поля ввода, значения должны обновляться в контроллере через ng-модель

Как сформировать объект вопроса, чтобы я мог отправить его на сервер, где объект вопроса имеет свойство в виде массива параметров (автоматическое сопоставление должно работать)

вот мои модели на стороне сервера для вопросов и вариантов..

public class Option
{
    public int Number { get; set; }
    public string Description { get; set; }
}

public class Question
{
    public int Id { get; set; }
    //....opther properties
    public Option[] Options { get; set; }
}

person Rahul R.    schedule 08.03.2013    source источник


Ответы (1)


Самый простой способ приблизиться к этому — использовать модель «option_new» для новой строки: http://plnkr.co/edit/KERIO0

person Sharondio    schedule 08.03.2013
comment
спасибо за ваш ответ, но на самом деле в моем случае.. я не хочу инициализировать параметр с пустыми полями в контроллере.. есть ли способ сделать это.. - person Rahul R.; 09.03.2013
comment
да, я хочу... но для этой новой строки... я не хочу инициализировать значения чем-либо... просто хочу указать ng-модель в html... и если пользователь вводит что-то там, $scope будет иметь эту строку ...так же, как это происходит в большинстве сценариев.. - person Rahul R.; 09.03.2013
comment
Вы также можете инициализировать массив $scope.question.options пустой опцией, которая будет частью модели. Вам нужно будет решить, как запустить обновление обратно в источник данных и проверить наличие пустых значений. - person Sharondio; 09.03.2013
comment
это то, что я пытаюсь сделать в своей скрипте ... пытаюсь нажать пустую опцию ... но всякий раз, когда значения вводятся в html ..., он должен иметь эти ... var option = { number: $scope.question.option.number, описание: $scope.question.option.description, } $scope.question.options.push(option); - person Rahul R.; 09.03.2013
comment
plnkr.co/edit/yL4UTk (Ваша скрипка настроена неправильно. Plunker загружает ее для вас, когда вы выбираете angular из нового меню.) - person Sharondio; 09.03.2013