2015-01-10 4 views
6

AngularJS $ 리소스를 배우기 시작했습니다. $ 리소스 개체에 서버에서 다운로드 한 데이터에 첨부 된 몇 가지 메서드가 있습니다 (아래 예제 참조). 어떻게 이러한 메서드를 제거하고 개체를 일반 (배열) 개체로 변환합니까? 예를 들어

__proto__: Resource $delete: function (params, success, error) {$get: function (params, success, error) {$query: function (params, success, error) {$remove: function (params, success, error) {$save: function (params, success, error) {constructor: function Resource(value) {toJSON: function() {__proto__: Object 

, 나는 $의 resource.save를 사용하여 일부 키 값 데이터를 포함 POST 요청을 보내려고하지만, 이러한 ' 프로토'배열의 항목이 어떻게 든 데이터가되기 위해 일으키는 "정의되지 않은 "공장에서 $ .param (데이터)로 전달 될 때. 나는 $ http를 사용하여 똑같은 일을 쉽게 할 수 있었지만 $ resource을 배우고 싶다. 감사! 컨트롤러

$scope.ok = function() { 
     $scope.entry = new calEntry(); 
     $scope.entry.data = data // data is $resource object including _proto_ items 
     $scope.entry.$save(function(){ 
      toaster.pop('success','Message','Update successfully completed.'); 
     }); 
    }; 

공장

myApp.factory("calEntry",['$resource','$filter', function($resource, $filter) { 

    return $resource("/griddata/", {}, { 
     save: { 
      method: 'POST', 
      headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}, 
      transformRequest: function(data, headersGetter) { 
       return $.param(data);  // data is undefined when it reaches here 
      } 
     } 
    }); 
}]); 

답변

8

,이 데이터를 가져 오는 것입니다 toJSON 기능을 시도하고 추가 속성을 제거 내부

.

+0

답변 해 주셔서 감사합니다. $ scope.entry.data = data.toJSON()을 변경하려고 시도했지만 _proto_ 속성은 모두 여전히 존재합니다. 내가 놓친 게 있니? –

+0

angular.toJson (data)은 속성을 삭제하고 간단한 JSON 문자열을 반환합니다. 고맙습니다. –

관련 문제