fix($resource): prevent default params to be shared between actions

Having a $resource defined as:

var R = $resource('/Path', {}, {
  get: {method: 'GET', params: {objId: '1'}},
  perform: {method: 'GET'}
});

was causing both actions to call the same URI (if called in this order):

R.get({}); // => /Path?objId=1
R.perform({}); // => /Path?objId=1
This commit is contained in:
Adrian Gheorghe
2012-09-23 01:53:08 +02:00
committed by Igor Minar
parent b21f4a376d
commit 94e1c0391c
2 changed files with 13 additions and 2 deletions

View File

@@ -314,8 +314,8 @@ angular.module('ngResource', ['ng']).
function extractParams(data, actionParams){
var ids = {};
paramDefaults = extend(paramDefaults, actionParams);
forEach(paramDefaults || {}, function(value, key){
actionParams = extend({}, paramDefaults, actionParams);
forEach(actionParams, function(value, key){
ids[key] = value.charAt && value.charAt(0) == '@' ? getter(data, value.substr(1)) : value;
});
return ids;