use*_*759 33 angularjs restangular
这两者有什么区别?两者似乎都对/ users进行了GET并检索它们.
Restangular.one('users').getList().then(function(users) {
// do something with users
});
Restangular.all('users').getList().then(function(users) {
// do something with users
});
Run Code Online (Sandbox Code Playgroud)
我知道你可以做一个('用户',123),它将检索/ users/123,但没有第二个参数,它似乎是相同的事情.为什么不在这种情况下只有一种方法?
lys*_*ing 32
该one()函数有一个接受id的第二个参数,例如.one('users', 1).
one('users', 1).get() 翻译成 /users/1all('users').getList() 翻译成 /users不像all(),one()是不是通常所使用.getList()不用争论.但是,如果你打电话.one('users', 1).getList('emails')或.one('users', 1).all('emails').getList(),那么你会发出GET请求/users/1/emails.
我的猜测是他们在那里表达了你打算做什么的意图.我会理解这些是构建网址的一种方式,表达您是访问整个资源还是特定资源.
最后,他们将构建并执行GET请求但是因为您执行GET并检索一些数据并不意味着它应该以这种方式使用.
从https://github.com/mgonto/restangular/issues/450中提取的示例
getList可以双向调用.如果在元素1中调用它,那么它需要一个子元素才能到达Collection.否则,它会获取集合.所以以下是相同的:
Restangular.one('places', 123).getList('venues') // GET /places/123/venues
Restangular.one('places', 123).all('venues').getList() // GET /places/123/venues
Run Code Online (Sandbox Code Playgroud)
如你所见,更有表现力的是呼叫一个('places',123).all('场地')来理解你只想要位于区域/地点123的场地.
也许以下网址将帮助您:
https://github.com/mgonto/restangular/issues/450