私は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は' field in customFields 'に由来します。
<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>
リピーター内。 try を入力してください。
そのはず:
<input type="text" ng-model="person.customfields[field]" />