를 삭제하지 I 간단한 배열과 기능을 가지고 방금 읽은 것, 입력에 값을 입력하고 버튼을 클릭하면 입력 값이 나열된 배열에 추가되고 양식이 지워집니다.폼 배열에 추가하고 내 컨트롤러
대신 빈 행이 목록에 삽입되어 값이 입력에 남아 있습니다.
내가 놓친 것을 누구든지 볼 수 있습니까?
를 삭제하지 I 간단한 배열과 기능을 가지고 방금 읽은 것, 입력에 값을 입력하고 버튼을 클릭하면 입력 값이 나열된 배열에 추가되고 양식이 지워집니다.폼 배열에 추가하고 내 컨트롤러
대신 빈 행이 목록에 삽입되어 값이 입력에 남아 있습니다.
내가 놓친 것을 누구든지 볼 수 있습니까?
guarantor: $scope.newGuarantor
을 밀어 넣은 후 $scope.newGuarantor
을 다시 설정하십시오. 따라서 푸시 된 값은 $scope.newGuarantor
의 재설정으로 인해 재설정됩니다.
$scope.newGuarantor
의 재설정에 영향을주지 않고 새 개체를 밀어 넣어야하는 경우 angular.copy()
을 사용하면 variable
의 새 복사본이 만들어지며 해당 복사본은 원래 값의 영향을받지 않습니다. 즉, 원래 값을 변경하면 복사 값이 변경되지 않습니다. 따라서 원본 변수와 사본 변수 간에는 아무 관계도 없습니다.
$scope.addGuarantor = function(){
var objVal = angular.copy($scope.newGuarantor);
$scope.guarantors.push({
guarantor: objVal
});
$scope.newGuarantor = '';
}};
설명이 완벽하게 이해 되었기 때문에 나는 다른 것을 놓쳐 버렸음에 틀림 없다. 그러나이 코드는 나에게 똑같은 결과를 가져온다. 새로운 빈 행과 입력이 여전히 채워진다. – jgravois
정답이 아닙니다. OP 코드는 처음부터 잘 작동합니다. 또한 문자열과 같은 간단한 값은 항상 JavaScript에 의해 참조로 복사되지 않고 전달됩니다. 그래서 문자열에 "copy"를 호출해도이 코드가 작동하는 방식이 바뀌지 않습니다. –
확실하지이 작동하지만이에 컨트롤러를 변경 왜 그것은
$scope.newGuarantor = {};
$scope.addGuarantor = function() {
$scope.guarantors.push($scope.newGuarantor);
$scope.newGuarantor = {};
};
뷰가 변경 일 :
<tr ng-repeat="pg in guarantors">
<td>{{pg.guarantor}}</td>
</tr>
<tr>
<td>
<form ng-submit="addGuarantor()">
<input type="text" ng-model="newGuarantor.guarantor"/>
<button type="submit"> <span class="glyphicon glyphicon-plus"></span>
</button>
</form>
</td>
</tr>
이 난을 createad 문제 –
을 보여주기 위해 plunker 또는 바이올린을 만드는 시도 JSFiddle 코드와 잘 작동합니다 : http://jsfiddle.net/gbfgs0fo/3/ –
그래서 혼란스러워 ... 코드는 jsFiddle에서 작동하지만 내 페이지에서 빈 행과 전체 입력 및 오류가 발생합니다. 콘솔에. 어리석은 유형이 아니 었는지 확인하기 위해 필자는 피들을 코드로 복사하여 붙여 넣었습니다. – jgravois