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