추가/제거 기능이있는 양식을 만듭니다. 이를 달성하기 위해 을 ng-repeat
에 사용하려고했습니다. 내 코드는 다음과 같습니다.ng-repeat 및 ng-model을 사용하는 AngularJS 추가/제거 기능
<button ng-click='add()'>Add more</button>
<div ng-repeat='x in array track by $index'>
<input ng-model='array[$index].name'></input>
<input ng-model='array[$index].phone'></input>
<input ng-model='array[$index].email'></input>
</div>
//angular module
$scope.add = function() {
$scope.array.push(item);
};
하지만 입력 필드가 모두 동기화되고 배열의 모든 항목이 동일하게 보이므로 의도하지 않습니다. 또한 코드 샘플을 codepen에 작성했습니다.
angular.module('myapp', [])
.controller('Ctrl', ['$scope', '$compile',function ($scope, $compile) {
$scope.array = [];
var item = {
name: '',
phone: '',
email: '',
};
$scope.array.push(item);
$scope.addItem = function() {
item.name = $scope.name;
item.phone = $scope.phone;
item.email = $scope.email;
$scope.array.push(item);
$scope.name = "";
$scope.phone = "";
$scope.email = "";
};
}]);
당신은 이름, 이메일의 각을 저장해야합니다 및 전화는 별도의 모델입니다 :
색인을 사용하여 배열 요소를 참조 할 필요가 없습니다. 표현식에 선언 된 x 변수를 사용하십시오. 그것은 각 반복에서 특정 요소에 대한 관심입니다. – ste2425
@ ste2425 감사합니다. – supergentle