我的api需要一个api调用的斜杠.我想知道如何用棱角分离它.
所以我需要能够访问/tasks/
或/tasks/xxxx/.
尝试通过以下方式进行:
angular.module('taskServices', ['ngResource']).
factory('Tasks', function($resource){
return $resource('/tasks/:task_id/', {}, {
query: {method:'GET',
params:{},
isArray:true}
});
});
Run Code Online (Sandbox Code Playgroud)
和a
$scope.tasks = Tasks.query();
Run Code Online (Sandbox Code Playgroud)
但它会产生一个/tasks
或一个tasks/xxx
查询.
我怎么能强迫它永远/tasks/
和/tasks/xxx/
Mar*_*cci 64
这似乎已经修复:https://github.com/angular/angular.js/pull/5560
您现在可以这样配置它:
app.config(function($resourceProvider) {
$resourceProvider.defaults.stripTrailingSlashes = false;
});
Run Code Online (Sandbox Code Playgroud)
pko*_*rce 34
在这行 AngularJS源代码中显式删除了尾部斜杠.我不完全确定这段代码的基本原理是什么,但是已经有一个问题:https://github.com/angular/angular.js/issues/992
如上所述,$resource
工厂非常适合符合特定规范的RESTful端点.虽然$resource
在与符合本规范的后端进行交谈方面做得很好,但它有一些限制可能会排除那些不遵守预期合同的后端$resource
.在这种情况下,最好的方法是切换到使用$http
此问题中提到的低级服务:从服务器获取数据的推荐方法
$http
是一个非常强大和灵活的服务,允许完全控制URL,参数发送等.
小智 20
在url模板的最末端添加一个空格在这里工作(使用角度1.2.0测试):
{url: '/user/:id/ '}
Run Code Online (Sandbox Code Playgroud)
小智 6
在Chrome和Safari上为我添加2个反斜杠以逃避URL上的尾部斜杠.
然而Firefox确定从URL中删除尾部斜杠并将正斜杠转义为%5C的反斜杠编码是个好主意...很好:-)所以在上面的例子中你会得到http:// example .com/controller/save%5C,然后404s在服务器上.
我正在为我的项目使用Django + TastyPie并且需要在URL上使用尾随斜杠,我将寻找修改ngResource而不是降低到$ http作为最低标准的所有内容.
归档时间: |
|
查看次数: |
27709 次 |
最近记录: |