set request body and params on $resource POST

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

Answer:

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);
相關文章
相關標籤/搜索