ngResource
用...实现事情似乎已经很简单了...
与ngResource 相比,使用Restangular有哪些优点/缺点?
1.1.3 $resource
将返回承诺,并且可以使用最新的PR commit来实现。将来会提供支持$resource
来支持Restangular所做的其他动词吗?如果发生这种情况,Restangular似乎将消失并变得不耐烦。
ngResource
用...实现事情似乎已经很简单了...
与ngResource 相比,使用Restangular有哪些优点/缺点?
1.1.3 $resource
将返回承诺,并且可以使用最新的PR commit来实现。将来会提供支持$resource
来支持Restangular所做的其他动词吗?如果发生这种情况,Restangular似乎将消失并变得不耐烦。
Answers:
我是Restangular的创建者。
我已经在自述文件中创建了一个与$ resource不同的部分。您可以在这里查看它们https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource
总之,总而言之,除了其他功能和基于promise的方法外,想法是Restangular还可以处理您的所有URL,因此您不必了解它们。
假设您对汽车有这样的东西:/ users / 123 / cars / 456
在$ resource中,您必须手动构造该URL,并且还必须为此手动构造$ resource对象。Restangular通过“记住” URL来帮助您。
所以如果你在某个地方
Restangular.one("users", 123).get().then(function(user) {
$scope.user = user;
});
// Some other code
//Automatically does the request to /users/123/cars as it remembers in which object you're asking it.
$scope.user.getList('cars')
希望这可以帮助!
.one('users', 123)
或多或少地“知道”您的URL '/users/123'
?(只是扮演Devil的拥护者)似乎'/foo/123/bar/123'
比容易得多.one('foo', 123).one('bar', 123)
。
var user = Restangular.one('users', 123).getList()
。稍后在代码或其他控制器中执行user.getList('buildings')
。在这里,您只知道下一个建筑物类型,但它会查询/users/123/buildings/
,因此您不必一直知道完整的URL
$resource
-我并不暗示它已经被提到,无论如何都将不相关。我们应注意的任何事实劣势或陷阱?
ngResource在最新的稳定版本(当前为1.0.6)中不返回承诺。此外,看起来Restangular比ngResource暴露了更多的动词(它暴露了PUT,OPTIONS,PATCH等)。
如果您不需要其他动词,并且位于AngularJS的不稳定分支(包括对ngResource的承诺)上,那么我认为没有主要理由在ngResource上使用Restangular。
使用任何您认为合适的东西。
$resource
将返回承诺,并且可以使用最新的PR承诺隐含。stackoverflow.com/questions/16429832/…是否会提供将来的支持$resource
以支持其他动词?如果发生这种情况,Restangular似乎将消失并变得不耐烦。
作为上述答案的后续活动,对于像我这样对这些想法感兴趣的新读者:
“如果发生这种情况,Restangular似乎将消失并变得不耐烦。”
“这家伙在三个月后放弃了对Restangular的支持会发生什么,因为Google的ngResource掌握了它所缺少的所有功能。”
在我看来,开源库生存的唯一保证是围绕它建立的社区。最好的例子是mariaDB和WebScaleSQL,它们两者都源于强大的关系数据库管理系统MySQL的发展。
在撰写本文时,Restangular having 6699 stars and 727 forks
现在正朝着Restangular 2.0前进,后者旨在支持angularJs 2.0和ES6。
对于您想要在最小的支持下永远运行的快速简单网站,无论我在从事自己喜欢的项目并且在享受并尝试使用所有出色技术的情况下,我都会使用内置的有角度的http HttpClient我将使用Ngx-Restangular
另外,您应该知道ngx-restangular仅与名称提示一起使用RESTful服务。因此,对于提供SOAP的服务,您将无法使用Ngx-Restangular
话虽这么说,但我经常会使用ngx-restangular,因为我总是会尝试从事自己认为很不错的项目,并尝试实现自己认为最好的项目。
祝你好运!
$http
对angularjs进行了重大发行更改---您将无法升级,因为Restangualr的服务呼叫将期待“其他”,并且您最终将破坏该“决定使用的框架”。