Я пытаюсь передать данные в тело запроса и параметр запроса на вызов с угловым $ ресурсом. Ниже мой обработчик кликов от моего контроллера и службы, которую он вызывает:
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
.
playersService.setPlayerLimit
должен принимать по 4 параметра:
(параметры запроса, тело запроса, обратный вызов успеха, обратный вызов ошибки)
Измените код как:
playersService.setPlayerLimit({playerId: playerId}, data, success, error);
Найденное решение здесь
'Используйте перегруженный method(params, payload)
подписи', как показано ниже:
vm.setPlayerLimit = function(limit) {
playersService.setPlayerLimit({playerId: playerId}, {activity: 'point_limit', limit: limit});
};