ng-model绑定到数组中的数组

时间:2015-12-24 16:20:57

标签: arrays angularjs

创建新的投票时,问题和所有可能的答案需要在提交后发送到controller。我知道如何使用ng-model,但我不知道如何将其绑定到该数组中的array

例如,我的数组看起来像这样:

 var question = {
    "question":"",
    "choices": [
      {
        "id":1,
        "choice": "Yes"
      },
      {
        "id"=2,
        "choice": "No"
      }
    ]
  }

表格

      <form novalidate name="questionForm" ng-submit="addVote(vote)">
        <input placeholder="Type your question..." name="question" ng-model="vote.question" />
        <input ng-model="" value="Choice 1" />
        <input ng-model="" value="Choice 2" />
<button type='submit' class="circle-btn btn-send ion-ios-paperplane"></button>
      </form>

input[name=question]显然会将input框中的内容发送到vote.question。但是,如何将这些潜在答案添加到choices array

注意:可以添加更多输入字段

修改

简而言之:我需要能够绑定{id:1, choice: value of input}

2 个答案:

答案 0 :(得分:2)

您可以使vote变量成为包含问题的对象文字和答案选择数组(可以是空数组):

在控制器中:

$scope.vote = {
  "question": 'question stem title here',
  "answerChoices": [
    {"id": 1, "choice": 'Yes'},
    {"id": 2, "choice": 'No'},
  ]
};

在HTML中:

<form novalidate name="questionForm" ng-submit="addVote(vote)">
        <input placeholder="Type your question..." name="question" ng-model="vote.question" />
        <span ng-repeat="choice in vote.answerChoices track by $index">
          <input class="form-control" ng-model="vote.answerChoices[$index]" />
        </span>
<button type='submit' class="circle-btn btn-send ion-ios-paperplane"></button>
      </form>

您可以push以编程方式vote.answerChoices数组的新答案选项

答案 1 :(得分:1)

只需使用ng-repeat来迭代选择,并在数组的每个元素上显示一个输入,绑定到该元素的choice字段:

<div ng-repeat="element in vote.choices">
  <input ng-model="element.choice" />
</div>