【发布时间】:2015-12-29 14:35:38
【问题描述】:
我正在开发一种连接到 RESTFUL 文件 api 的文件管理器应用程序。
在 Angular 应用上,每个文件和目录都是 Angular $resource 的一个实例,使用文件对象属性 relativePathName 作为资源 id。
js
var File = $resource(url + '/:type/:id', {id: '@relativePathName', type: '@type'}, {…});
问题是,在更新文件资源时,relativePathName 参数会被 url 编码,例如/ 变为 %2F 导致服务器在请求到达实际 API 之前拦截请求(我假设服务器将此视为物理地址并返回 404 响应)。 API 能够将整个 url 段视为单个参数,因此基本上它将 path/to/file 视为 http://myapp.com/api/files/create/path/to/file 的 uri 参数,而不是不同的 uri。
我的问题是,有没有办法在资源构造函数中的private Router instance 生成请求 url 后修改它?如果是这样,如何(在文档中对此一无所获)?什么是可能的解决方案?将 relativePathName 作为参数传递,而不是将其声明为资源 id(这需要修改 API)?
提前致谢。
托马斯
【问题讨论】:
标签: javascript angularjs