Как установить тело запроса и параметры на $ resource POST

0

Я пытаюсь передать данные в тело запроса и параметр запроса на вызов с угловым $ ресурсом. Ниже мой обработчик кликов от моего контроллера и службы, которую он вызывает:

controller.js:

vm.setLimit = function(limit) {
  var data = {
    activity: 'point_limit',
    limit: limit
  };
  playersService.setPlayerLimit({
    playerId: playerId,
    data
  });
};

service.js:

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 работает, но setPlayerLimit не потому, что по какой-то причине он не передается playerId.

Теги:
http

2 ответа

5
Лучший ответ

playersService.setPlayerLimit должен принимать по 4 параметра:

(параметры запроса, тело запроса, обратный вызов успеха, обратный вызов ошибки)

Измените код как:

playersService.setPlayerLimit({playerId: playerId}, data, success, error);
0

Найденное решение здесь

'Используйте перегруженный method(params, payload) подписи', как показано ниже:

vm.setPlayerLimit = function(limit) {
  playersService.setPlayerLimit({playerId: playerId}, {activity: 'point_limit', limit: limit});
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню