将对象数组绑定到$scope


<div data-ng-repeat="div in divs">
    <label>First Name</label>
    <input type="text" name="fname" ng-model="user.fname[$index]">
    <label>Second Name</label>
    <input type="text" name="sname" ng-model="user.sname[$index]">
</div>
<button ng-click="addDivs()">Add More Person</button>

angular.module('user', []).controller('UserCtrl', function($scope){
    $scope.divs = [1];
    $scope.addDivs = function(){
        $scope.divs.push({});
    }
}

当我们有 2 个div 时所需的数据格式为:

[ { fname:'name1', sname:'name2' }, { fname:'name3', 名称:"名称4" } ]

但输出是:

{ fname:[ 'name1', 'name3' ], sname:[ 'name2', 'name ]}

如何对 html 进行建模以获取所需格式的数据?

这是你所期待的吗?

angular.module('user', []).controller('UserCtrl', function($scope){
  $scope.persons = [];  
  $scope.addDivs = function(){
        $scope.persons.push({fname: $scope.user.fname, sname: $scope.user.sname});
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="user" ng-controller="UserCtrl">
<div>
    <label>First Name</label>
    <input type="text" name="fname" ng-model="user.fname">
    <label>Second Name</label>
    <input type="text" name="sname" ng-model="user.sname">
</div>
  <div data-ng-repeat="person in persons"> {{person.fname}}  {{person.sname}}</div>
<button ng-click="addDivs()">Add More Person</button>
</div>

最新更新