2015-01-14 1 views
3

$ 리소스 서비스를 사용하여 API에서 리소스에 액세스하고 업데이트합니다.ng-model은 값이 비어 있으면 객체에서 요소를 삭제합니다.

그러나 ng-model에 바인딩 된 개체의 값이 비어있는 경우 문제가 발생합니다. 바운드 요소는 객체에서 삭제됩니다. 따라서 내 리소스를 저장할 때 요소는 전달 된 데이터에 없습니다.

예를 들어
angular.module('myApp', []) 

.controller('myCtrl', function($scope, $resource) { 
    var Person = $resource('persons/:id.json', {id: @id}); 

    $scope.data = Person.get({id:123}); 
}); 

: API가 설정합니다 경우 결정하기 때문에 저장할 때

<div ng-controller="myCtrl"> 
    <input type="text" ng-model="data.name" /> 

    <input type="button" ng-click="data.$save()" value="Save" /> 
</div> 

내가 전달 된 데이터에 대한 요소의 존재를 필요 data.name 아래 템플릿에 ''로 설정 하늘의 속성의 실제의 값 그렇지 않으면 속성이 갱신되지 않고 이전 값을 유지합니다. 사람이 같은 문제가 발생하는 경우

+0

이것은 불가능합니다. 값이 설정되지 않으면'model' 값이'empty '(' ') 또는'null' 또는'undefined'가됩니다. 그러한 문제에 직면 해있는 곳에서 [데모] (http://plnkr.co/edit/?p=catalogue)를 보여줄 수 있습니까? – Rayon

답변

1

, 문제는 NG-모델 아니었지만 검증와 나는 그것은 위의 질문에 표시된 코드의 일부가 아니다 입력

<input type="text" ng-model="data.name" ng-required="true" /> 

의 일환으로 추가 그러나 그것과 관련된 -

+0

ng-model-options = "{allowInvalid : true}"를 추가하면 빈 엘레멘트가 제거되지 않습니다. – RenRen

관련 문제