我有一个简单的$resource
工厂。
.factory('Order', order)
order.$inject = ['$resource', "ApiEndpoint", "UserRecord"];
function order($resource, ApiEndpoint, UserRecord) {
return $resource(ApiEndpoint.url + 'orders.json', {}, {
create: {method: 'POST', url: ApiEndpoint.url + 'orders.json'}
});
}
以下是我执行的代码。
var params = {product_id: 32342, variant_id: 536341};
Order.create(params, function( resp ) {
console.log("success");
});
当我跑create
时,参数不能通过。没有参数传递。为什么会这样,我该如何解决这个问题?
答案 0 :(得分:2)
根据docs:
可以使用以下参数调用类对象或实例对象上的操作方法:
HTTP GET "class" actions: Resource.action([parameters], [success], [error])
non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
non-GET instance actions: instance.$action([parameters], [success], [error])
所以你可以试试:
var params = {product_id: 32342, variant_id: 536341};
Order.create({},params, function( resp ) {
console.log("success");
});
第一个参数用于填写网址的参数(例如/foo/:id
需要{id: 324}
作为第一个参数)
<强>更新强>
参数顺序不正确:
var params = {product_id: 32342, variant_id: 536341};
Order.create(params,{}, function( resp ) {
console.log("success");
});
答案 1 :(得分:-1)
我意识到我错过了第二个论点POST-DATA
。
Order.create(params, {}, function( resp ) {
console.log("success");
});