AngularJS:ng-repeat中的ng-model?

时间:2013-07-25 18:19:24

标签: angularjs angularjs-directive angularjs-ng-repeat

我正在尝试使用ng-repeat生成表单输入。 注意:'customFields'是一个字段名称数组:[“Age”,“Weight”,“Ethnicity”]。

 <div class="control-group" ng-repeat="field in customFields">
   <label class="control-label">{{field}}</label>
     <div class="controls">
       <input type="text" ng-model="person.customfields.{{field}}" />
     </div>
 </div>

设置'ng-model'的最佳/正确方法是什么?我想将其作为 person.customfields.'fieldname'发送到服务器,其中fieldname来自“customFields中的字段”。

4 个答案:

答案 0 :(得分:28)

<div ng-app ng-controller="Ctrl">
    <div class="control-group" ng-repeat="field in customFields">
        <label class="control-label">{{field}}</label>
        <div class="controls">
            <input type="text" ng-model="person.customfields[field]" />
        </div>
    </div>
    <button ng-click="collectData()">Collect</button>
</div>

function Ctrl($scope) {
    $scope.customFields = ["Age", "Weight", "Ethnicity"];
    $scope.person = {
        customfields: {
            "Age": 0,
                "Weight": 0,
                "Ethnicity": 0
        }
    };

    $scope.collectData = function () {
        console.log($scope.person.customfields);
    }
}

您可以尝试here

更新:

对于验证,诀窍是将<ng-form>放在转发器中。请try

答案 1 :(得分:6)

应该是:

<input type="text" ng-model="person.customfields[field]" />

答案 2 :(得分:4)

任何关于谁在ng-model

ng-repeat结束的人

http://jsfiddle.net/sirhc/z9cGm/

以上链接对如何使用示例

进行了很好的描述

答案 3 :(得分:-1)

试试这个  NG-模型= “person.customfields”。{{字段}} 移动了双引号