我有一个带有函数的Angular服务:
// service.js
function DoSomething($resource) {
var resourceUrl = 'right/here';
return $resource(resourceUrl, {}, {
'action': {
method: 'POST'
}
});
}
和一个带有2个参数的@RestController(param1,param2)。
当我使用这样的服务时:
// service.js
function DoSomething($resource) {
var resourceUrl = 'right/here';
return $resource(resourceUrl, { param1: "abc", param2: "def" }, {
'action': {
method: 'POST'
}
});
}
工作正常。但是当我想从我的控制器传递这些值时,就像这样:
// controller.js
DoSomething.action(
{ param1: "abc" },
{ param2: "def" }
);
虽然服务部分仍为空
// service.js
return $resource(resourceUrl, {}, {
我的@RestController只收到一个值 - 左起第一个。怎么解决这个问题?
答案 0 :(得分:1)
使用$resource(resourceUrl, {}, {
,您可以从控件中传递参数,如下所示
//controller.js
DoSomething.action({}, {param1: "abc", param2: "def"});
答案 1 :(得分:0)
由于action方法是POST。需要一个数据对象。
var paramObj = {param1: value1, param2: value2};
var dataObj = {};
DoSomething.action(paramObj, dataObj);
paramObj定义的参数作为查询参数附加:
resourceUrl + "?param1=value1¶m2=value2"
dataObj被编码为JSON字符串并放在POST的主体中。
如果仅使用一个参数调用操作方法(POST):
DoSomething.action(dataObj);
$ resource服务将dataObj字符串化并将其放在POST的主体中。 URL参数取自$ resource。
定义的默认值