web-dev-qa-db-ja.com

AngularJS:ng-repeat内のng-model?

私は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 'に由来します。

21
502502
<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 を入力してください。

28
zs2020

そのはず:

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

ここにたどり着く人はng-model内部ng-repeat

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

上記のリンクには、例とともに使用する方法についての説明があります

4
Akr