AngularJS:ngResource 和对象数组作为 URL 的参数 [英] AngularJS: ngResource and array of object as params to URL

查看:24
本文介绍了AngularJS:ngResource 和对象数组作为 URL 的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有变量 $scope.data= [{column:"age", operator: ">", value: "50"}, {column:"name", operator: "=", value:通达"}].以及向服务器提交数据的服务:

I have variable $scope.data= [{column:"age", operator: ">", value: "50"}, {column:"name", operator: "=", value: "Tonda"}]. And service for submitting data to server:

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

为什么 URL 在调用 `serverApp.saveData() 后包含废话"?- .../myurl?0=%5Bobject+Object%5D&1=%5Bobject+Object%5D - 看来,params 只能是简单的 (1D) 对象.

Why URL contains "nonsense" after calling `serverApp.saveData()? - .../myurl?0=%5Bobject+Object%5D&1=%5Bobject+Object%5D - It seems, that params can be only simple (1D) object.

如何将对象 $scope.cfgcondition 正确序列化为服务 serverApp 的参数(例如到 URL)?谢谢.

How can I properly serialize object $scope.cfgcondition into params of service serverApp (eg. to URL)? Thanks.

推荐答案

'params' 属性定义了 URL 查询参数,我认为这是预期行为.如果它只是一个简单的对象,而不是数组,那么您可以使用 $save 之类的东西

The 'params' attribute defines URL query params, which I assume is intended behavior. If it was just a simple object, not an array, then you could just use $save something like

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

要发布数组,您需要定义自己的操作并将数据作为第二个参数传入.

To post an array you need to define your own action and pass the data in as second parameter.

$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.$resourcehttps://docs.angularjs.org/api/ngResource/service/$resource

*编辑以修复有关数组的错误陈述 - 我以为 $resource 无法 POST 数组,但发现我错了!

*Edited to fix misstatements regarding arrays - I thought $resource could not POST arrays, but figured out that I was wrong!

这篇关于AngularJS:ngResource 和对象数组作为 URL 的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆