2014-07-21 2 views
0

사용자 데이터를 업데이트하려고하는데, 'PUT'요청을하면 Angular가 폼에 의해 노출 된 필드가 아닌 전체 사용자 $ 범위를 보냅니다.AngularJS 'PUT'요청. 형식으로 데이터를 제출하는 방법은 무엇입니까?

데이터를 가져오고 저장하는 데 Factory를 사용하고 있습니다. 여기 이것은 내가에 보내고있다 서버가 자신의 서버 측 유효성 검사이기 때문에 나를 위해 작동하지 않습니다, 나는 전체 학생의 범위를 보낸다 경우 일부 필드가있을 것이다

$scope.editStudent = function() { 
    Student.edit ({id: $stateParams.studentId}, $scope.Student, function (data) { 
     $location.path('/'); 
}); 
}; 

내 편집 기능의 그 공백이므로 유효성 검사를 통과하지 못합니다.

서버를 사용하면 내가 업데이트해야하는 필드 만 보낼 수 있으므로이 방법을 찾고 있습니다.

여기에 내 질문에 설명하기 위해 스크린 샷입니다 : 당신은 형식에 정의 된 필드를 확인하는 함수를 작성하고 만 값을 제출할 수 있습니다

답변

0

. 나는 그 코드가 자명하다고 생각한다.

코드 조각

app.controller('MainCtrl', function($scope, $http) { 
    $scope.user = { 
     "name": "Ali", 
     "company": "MSB", 
     getData: function(form) { 
      var data = {}; 
      angular.forEach(this, function(fieldValue, fieldName) { 
       if (!angular.isFunction(fieldValue) && form.$isSubmit(fieldName)) { 
        data[fieldName] = fieldValue; 
       } 
      }); 
      return data; 
     } 
    } 

    $scope.save = function() { 
     $scope.userForm.$isSubmit = function(fieldName) { 
      return !angular.isUndefined((this[fieldName])); 
     } 
     console.log($scope.user.getData($scope.userForm)); 
     $scope.data = $scope.user.getData($scope.userForm); 
     //$http.put('url', $scope.data) 
    } 
}); 

은 내가 plunkr 생성 - http://plnkr.co/edit/6g5myBvBmWZ2IvKMLuvL?p=preview

* 팁 (또는 규칙)

  1. 입력의 이름을 지정해야합니다 동일한 모델 이름
  2. 변화 GetData의 기능과 같은 반환 할 데이터를 처리하는 것을 좋아합니다.
관련 문제