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

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

问题描述

我有变量 $ scope.data = {[柱:年龄,经营者:>中,值:50},{列:名称,运算符:= 值:同德}] 。和提交数据到服务器服务:

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 +对象%5D&放大器; 1 =%5Bobject +对象%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 进入服务PARAMS serverApp (如到URL) ?谢谢你。

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

推荐答案

在'参数'属性定义URL查询参数,我以为意的行为。如果这只是一个简单的对象,而不是一个数组,那么你可以只使用$保存像

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 。$资源
https://docs.angularjs.org/api/ngResource/service/$resource

*编辑,以解决有关阵列错报 - !我还以为$资源无法发布数组,但是想通了,我错了。

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

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

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