使用Restangular over ngResource的优点是什么?

ngResource已经看起来很简单 ,实现…

ngResource使用Restangular的优点/缺点是什么?

1.1.3 $resource将返回promise,并且可以使用最新的PR commit来实现 。 未来的支持是否会被提供给$resource以支持Restangular额外的动词? 如果发生这种情况,Restangular似乎会消失并变得不相关。

我是Restangular的创造者。

我在README上创build了一个关于$ resource的区别。 你可以在这里查看https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource

无论如何,作为一个总结,除了额外的function和基于承诺的方法,这个想法是,Restangular也可以处理所有的URL,这样你就不必知道关于它们的任何信息。

假设你有这样的汽车:/用户/ 123 /汽车/ 456

在$ resource中,您必须手动构build该URL,并且您还必须手动构build$ 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') 

希望这可以帮助!

我发现Restangular的RequestInterceptor在创buildRequest之前从对象中移除一些字段非常方便。 我目前正在使用的大多数REST Web服务不要期待PUT请求中的对象数据中的id,例如,只在url中。 一般来说,他们并不期望不能被PUT更新的额外数据字段(如id,或者通过设置标题等产生的slug)。 我发现这与Restangular是直接的,而我还没有想出如何以$干净的方式做到这一点,但我相信它可能以某种方式。

显然,人们也可以改变web服务,只是忽略这些额外的领域,但这并不总是可能的。

ngResource不会在最新的稳定版本(目前是1.0.6)中返回承诺。 此外,它看起来像Restangular暴露比ngResource更多的动词(它公开PUT,OPTIONS,PATCH等)。

如果你不需要额外的动词,并在AngularJS的不稳定的分支(其中包括ngResource的承诺),我没有看到使用RestResular ngResource的任何主要原因。

使用任何你感觉舒服的。

作为以上的答案和读者,像我一样,对这些想法感兴趣:

“如果发生这种情况,Restangular似乎会消失,变得不相关。”

“三个月后,当这个家伙放弃对Restangular的支持时,会发生什么,因为Google的ngResource赶上了它所缺less的所有function。”

  • [ 问2年前 ]

在我看来, 开源图书馆生存的唯一保证就是build立在它周围的社区。 一个最好的例子就是mariaDBWebScaleSQL ,它们都是作为一个关系数据库pipe理系统MySQL的增长而诞生的。

在这个写作时间Restangular having 6699 stars and 727 forks现在正在向Restangular 2.0,这意味着支持angularJs 2.0和ES6。

  • 讨论一下: https : //github.com/mgonto/restangular/issues/890 。
  • 先回购预览: https : //github.com/mgonto/restangular/tree/2.0-wip
  • 由mgonto提交的ng-europe会议: https ://youtu.be/fWar75R1NGo