Angularjs restanglar中的.all()和.one()有什么区别?
这两者有什么区别?两者似乎都可以访问/检索用户Angularjs restanglar中的.all()和.one()有什么区别?,angularjs,restangular,Angularjs,Restangular,这两者有什么区别?两者似乎都可以访问/检索用户 Restangular.one('users').getList().then(function(users) { // do something with users }); Restangular.all('users').getList().then(function(users) { // do something with users }); 我知道你可以做一个('users',123),它将检索/users/123,
Restangular.one('users').getList().then(function(users) {
// do something with users
});
Restangular.all('users').getList().then(function(users) {
// do something with users
});
我知道你可以做一个('users',123),它将检索/users/123,但是没有第二个参数,它似乎是一样的。在这种情况下,为什么不只使用一个方法?函数的one()
还有第二个参数接受id,例如.one('users',1)
转换为one('users',1).get()
/users/1
转换为all('users')。getList()
/users
与
all()
不同,one()
通常不带参数与.getList()
一起使用。但是,如果您要调用.one('users',1).getList('emails')
或.one('users',1).all('emails').getList()
,那么您会向/users/1/emails
发出GET请求,我猜它们是用来表达您将要做的意图的。我认为这是构建url的一种方式,表示您是访问整个资源还是访问特定资源
最后,他们将构建并执行GET请求,但因为您执行了GET并检索了一些数据,这并不意味着应该以这种方式使用它
示例摘自
getList可以双向调用。如果在元素1中调用,
然后它需要一个子元素来访问集合。否则,
获取集合。因此,以下内容是相同的:
如您所见,将一个(地点)称为123更具表现力。将所有(场馆)称为123更具表现力,以理解您只希望场馆位于123区域/地点
以下url可能会对您有所帮助:
我最近发现了这些方法之间的差异。是的,他们都会发出相同的get请求,但是您得到的结果可能会让您感到惊讶(就像他们让我感到惊讶一样) 假设我们有一个API方法/用户,该方法/用户返回的不是严格意义上的数组,而是如下所示:
{
"result": [{...}]
}
因此,数组作为响应对象的某个属性的值返回。在本例中,get()和getList()的工作方式不同。此代码运行良好:
Restangular.get('users').then(function (response) {...});
您的响应处理程序在收到响应后被调用。但这个代码似乎不起作用:
Restangular.all('users').getList().then(function (response) {...});
不调用响应处理程序,尽管请求已完成,状态代码为200,响应为非空。浏览器控制台不显示任何错误,网络监视器显示请求成功
我已经用Restangular 1.5.2测试过了,所以可能在新版本中已经修复了
Restangular.all('users').getList().then(function (response) {...});