<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 divs, требуемый формат данных:
[{fname: 'name1', sname: 'name2'}, {fname: 'name3', sname: 'name4'}]
Но результат был следующим:
{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>
$scope.user=[];
и<input type="text" name="fname" ng-model="user[$index].fname">
же самое дляsname
-ng-model="user[$index].sname"
- plnkr.co/edit / sqEZexWeiR6WwfiSf0BL? р = предварительный просмотр