我正在处理一种连接到RESTFUL文件API的文件管理器应用程序。 在角度应用上,每个文件和目录都是使用文件对象属性relativePathName
作为资源ID的角度为$resource
的实例。
js var File = $resource(url + '/:type/:id', {id: '@relativePathName', type: '@type'}, {…});
问题是,更新文件资源时,所述relativePathName
参数获取URL编码,例如/
变成%2F
这会导致服务器在它碰到实际的API之前拦截请求(我假设服务器将其视为物理地址并返回404响应)。该API能够将整个网址段作为单个参数进行处理,因此基本上它会将path/to/file
作为参数http://myapp.com/api/files/create/path/to/file
的uri参数,而不是作为不同的URI。
我的问题是,是否有一种方法可以在资源构造函数内部生成private Router instance之后修改请求url?如果是这样,如何(在文档中没有发现这一点)?什么是可能的解决方案?将relativePathName
作为参数传递,而不是将其声明为资源ID(这将需要修改API)?
在此先感谢。
托马斯
谢谢,这可能是唯一的方法。经过一番修改之后,我最终扩展了由'$ resource()'检索的构造函数,并重写'$ get',因为这是唯一对我编码的url参数至关重要的方法。 – iwyg