使用 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/