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

标签 angularjs angularjs-resource

使用 AngularJS 1.2.16 和 Angular-resource 1.2.16。

我有一个资源,例如:

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

当我使用类似的东西进行 get 时

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

生成的ajax调用正确替换了:variable,我得到了

api/taco/path

如果我发表类似的帖子

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

生成的 ajax 调用如下所示

api/path

“taco”被放入 POST 正文中...

我很难找到其他人对此进行提示,所以,也许这就是应该发生的事情?

编辑:我刚刚发现在上面的示例中 get 使用“variable”,而 save/POST 使用“variableName”。有人对此有解释吗?

这是一个显示情况的 fiddle :fiddle

最佳答案

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

我能够通过直接传递预期参数让它工作。

使用$资源:

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'
            }
            // ************
        }
    });
  });

关于angularjs $resource 不替换 POST url 模板中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24025749/

相关文章:

javascript - 处理非 Angular 代码时如何立即更新 $scope?

javascript - 使用 Sequelize 在创建或保存时获取关联

javascript - 如何将 JSON 对象传递给 angularjs 中的资源

javascript - 嵌套函数中无法访问 $scope

javascript - Angular Material md-slider : Vertical Slider will not work in md-sidenav

javascript - $routeParam 不通过 $resource 工厂的 url 传递变量

javascript - 未调用 Angularjs 资源工厂 transformResponse

angularjs - 如何扩展 AngularJS 资源 ($resource) 的构造函数?

javascript - 以下 AngularJS 代码更改底部边框颜色的正确语法是什么?

javascript - 在 Javascript 中使用 Promise 不起作用