这是oneUrl函数的签名:oneUrl(route, url)并且从文档中:



对我来说,在提供资源的URL时设置Route似乎没有用。为什么它存在于参数列表中?为什么是强制性的?以及如何使用?

最佳答案

在使用oneUrl时,我发现路由名称用于为后续PUTDELETE操作构建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还是很陌生,所以我可能没有正确的心理模型。

10-01 10:29