angularjs $ resource不替换POST的url模板中的变量

时间:2014-06-03 22:04:06

标签: angularjs angularjs-resource

使用AngularJS 1.2.16和angular-resource 1.2.16。

我有一个资源:

$resource('api/:variable/path',
    {
        variable:'@variableName'
    });

当我使用

之类的东西时
resourceIns.get({variable:'taco'});

生成的ajax调用正确替换:变量,我得到

api/taco/path

如果我发帖子

resourceIns.save({variable:'taco'});

生成的ajax调用看起来像

api/path

和'taco'被放入POST体内......

我很难找到其他人抱怨这个,也许这就是应该发生的事情?

编辑:我刚刚发现get使用'variable'并且save / POST在上面的例子中使用'variableName'。有人对此有解释吗?

这是一个显示情况的小提琴:fiddle

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题或者以同样的方式出现的问题。我的资源也不尊重通过.post方法传入的参数。

我能够通过直接传递预期参数来使其工作。

使用$ resource:

angular.module('myApp')
  .factory('ModuleProductProducts', function ($resource) {
    return $resource('/module-api/product-products/:siteId/:id/:controller', {
      id: '@id'
    },
    {
        'updateMedia': {
            method: 'POST',
            url: 'module-api/product-products/:id/media/:mediaId',

            // *** Here ***
            params: {
                id: '@id',
                mediaId: '@mediaId'
            }
            // ************
        }
    });
  });