这是oneUrl
函数的签名:oneUrl(route, url)
并且从文档中:
对我来说,在提供资源的URL时设置Route
似乎没有用。为什么它存在于参数列表中?为什么是强制性的?以及如何使用?
最佳答案
在使用oneUrl
时,我发现路由名称用于为后续PUT
和DELETE
操作构建URL。例如(伪代码):
// "GET /api/v2/users/3/ HTTP/1.1" 200 184
var user = Restangular.oneUrl('myuser', 'http://localhost:8000/api/v2/users/3').get();
user.name = 'Fred';
// the following uses the route name and not the URL:
// "PUT /api/v2/myuser HTTP/1.1 404 100
user.put();
我为这种行为感到惊讶。我希望
put()
使用与get()
相同的URL;这对我的情况会有所帮助。我的API使用JSON负载中的绝对URL导航到所有相关资源,并且我想使用
oneUrl()
到GET/PUT
实例,而无需在JS代码中重新创建路由。但是我对Restangular还是很陌生,所以我可能没有正确的心理模型。