通过具有ng-repeat和ng-if的ng-model提交表格

时间:2017-08-27 10:16:22

标签: angularjs node.js

我想使用ng-submit以角度提交表单 但我也使用了ng-repeat和ng-if 由于我面临的问题是输入选项消失了ng-model coz of ng-if,我的代码会更清楚

[chunkhash]

请告诉我如何将输入数据发送到控制器

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望发送不可见输入数据和可见输入数据。

要做到这一点,您需要做的就是将ng-if更改为ng-show,因为ng-if实际上从DOM中删除了字段,而ng-show只隐藏了它:< / p>

<div ng-show="y.configvalue2==x.id">
       <input ng-model='configvalue2' type="radio" value="
        {{y.configvalue3}}" name="{{y.configvalue2}}" >{{y.configvalue1}}
</div>

答案 1 :(得分:0)

要将您的选择传递给控制器​​,您可以执行以下操作:

  1. 如果在ng-repeat中删除ng-if。相反,对要重复的集合使用过滤器

    <div ng-repeat="y in questions[1] | filter:{configvalue2:x.id}">

  2. 由于ng-repeat创建了一个内部范围,您必须将ng-model与父母的范围相关联(因为我们在这里有2 ng-repeats)。此外,由于我们将对不同的问题有不同的答案,我们应该在一个集合中添加相应的答案,并以其问题ID为索引

    <input ng-model='$parent.$parent.configvalue[x.id]' type="radio" value=" {{y.configvalue3}}" name="{{y.configvalue2}}">{{y.configvalue1}}

  3. 在控制器端,您现在可以访问configvalue集合以查找所有答案。通过&#39;结果&#39;不需要评估功能。

    $scope.evaluate = function() { alert("submitted values:"+ $scope.configvalue[1] + "," +$scope.configvalue[2]); }