I'm attempting to pass data in the request body and a request parameter to an Angular $resource call. Below is my click handler from my controller and the service which it calls:api
controller.js:url
vm.setLimit = function(limit) { var data = { activity: 'point_limit', limit: limit }; playersService.setPlayerLimit({ playerId: playerId, data }); };
service.js:spa
angular.module('gameApp') .factory('playersService', ['$resource', function($resource) { var base = '/api/players/:playerId/'; return $resource(base, {}, { getPlayerInfo: {method: 'GET', url: base + 'playerInfo'}, setPlayerLimit: {method: 'POST', url: base + 'playerLimit'} }); }]);
getPlayerInfo
works, but setPlayerLimit
does not because, for some reason, it is not being passed the playerId
.code
playersService.setPlayerLimit
should take 4 parameters in order:get
(request parameters, request body, success callback, error callback)it
Modify your code as:io
playersService.setPlayerLimit({playerId: playerId}, data, success, error);