oneUrl
功能的签名:oneUrl(route, url)
并从文档:
oneUrl(route,url):这将创建一个新的Restangular对象, 只是指向具有指定URL的一个元素的指针。
对我而言,当您为资源提供网址时,设置Route
似乎毫无用处。为什么它存在于参数列表中?为什么强制要求?它怎么用?
答案 0 :(得分:6)
在我使用oneUrl
时,我发现路由名称用于构建后续PUT
和DELETE
操作的网址。例如(伪代码):
// "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()
相同的网址;这对我的情况很有帮助。
我的API使用JSON有效内容中的绝对URL导航到所有相关资源,我想使用oneUrl()
到GET/PUT
实例,而无需重新创建JS代码中的路由。但我对Restangular很新,所以我可能没有正确的心理模型。