2012-08-17 28 views
10

Tôi có biến $scope.data= [{column:"age", operator: ">", value: "50"}, {column:"name", operator: "=", value: "Tonda"}]. Và dịch vụ để gửi dữ liệu tới máy chủ:AngularJS: ngResource và mảng đối tượng dưới dạng tham số URL

angular.module('myServices', ['ngResource']). 
    factory('serverApp', function($resource, $scope){ 
    return $resource('myurl/', {}, { 
     saveData: {method:'POST', params: $scope.data} 
    }); 
}); 

Tại sao URL chứa "vô nghĩa" sau khi gọi `serverApp.saveData()? - .../myurl? 0 =% 5Bobject + Đối tượng% 5D & 1 =% 5Bobject + Đối tượng% 5D - Dường như, các tham số đó chỉ có thể là đối tượng đơn giản (1D).

Làm cách nào để sắp xếp đúng đối tượng $scope.cfgcondition thành các tham số của dịch vụ serverApp (ví dụ: đến URL)? Cảm ơn.

+0

Có vẻ như nó đang gọi GET vì một lý do nào đó. Vì các tham số nằm trong URL chứ không phải nội dung. –

+0

Có thể cần xem thêm mã. Giống như nơi bạn đang gọi nó. –

Trả lời

18

Thuộc tính 'params' xác định thông số truy vấn URL mà tôi giả định là hành vi dự định. Nếu nó chỉ là một đối tượng đơn giản, không phải là một mảng, sau đó bạn chỉ có thể sử dụng $ tiết kiệm cái gì đó như

var MyRequest = $resource('/notreally'); 
$scope.data = new MyRequest; 
// get stuff into $scope.data 
$scope.doSubmit = function() { $scope.data.$save(); } 

Để gửi một mảng bạn cần xác định hành động của riêng bạn và vượt qua các dữ liệu trong thông số như thứ hai.

$scope.data= [{column:"age", operator: ">", value: "50"}, 
       {column:"name", operator: "=", value: "Tonda"}]; 
var MyRequest = $resource('/notreally', {}, {saveData: {method:'POST', isArray: true}}); 
$scope.doSubmit = function() { MyRequest.saveData({}, $scope.data); 

http://docs.angularjs.org/api/ngResource $ nguồn https://docs.angularjs.org/api/ngResource/service/$resource

* Edited để sửa chữa sai sót trọng yếu liên quan đến mảng -. Tôi nghĩ $ tài nguyên không thể đăng mảng, nhưng đã tìm ra rằng tôi đã sai!

+1

Câu trả lời rất hay, tôi ước tôi có thể làm cho nó được chấp nhận. –

Các vấn đề liên quan