我正在尝试使用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中的field’。
<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); } }
您可以在这里尝试。
更新:
为了进行验证,关键是将其放入<ng-form>中继器内部。请尝试一下。
<ng-form>