【问题标题】:JS Persistence library that will PATCH only changed values将 PATCH 仅更改值的 JS 持久性库
【发布时间】:2014-05-19 01:07:33
【问题描述】:

我正在评估 JS 持久性库。我在 Angular 堆栈上,因此 ngResource 和 Restangular 是选项,但 Breeze 和 Backbone 的模型/集合也是如此,我对其他人开放。

是否有一个 JS 持久性库可以监控模型的更改并仅对更改的属性执行PATCH

例子:

// Get a pretend user with a name, email, and some other stuff.
var currentUser = user.get(42)
// Change only the email address
currentUser.email = 'tractorDaddy@aol.com'
// Save changes
// The model could know that only one property has changed.
// The model could do a PATCH of a partial object, but I don't know a library that does.
currentUser.save() 

这似乎应该是默认实现,但这些库都没有这样做,我可以看到。

Backbone 的模型根据模型的新颖性决定是 POST 还是 PUT(我记得是由 id 的存在决定的)。我认为这是一个不错的举措,可以扩展到包括PATCH

我知道 Restangular 和其他人有一个 .patch() 方法,但我相信在所有情况下你都必须明确指定对象部分。

有这样的库吗?

【问题讨论】:

  • 你最后用了什么?
  • @jrhicks:我选择了restangular。我不认为我会再次做出同样的决定。它提供的价值并不超过必须根据他的抽象来思考。 (例如:“好的,我想发帖到api/users/7/preferences,我如何在Restangular 中写这个?)对于需要精简PATCH 的对象(因为要在PUT 上进行操作会很大),我自己做 diff。POSTPUT 之间的区别我还需要跟踪。情况并不理想。Angular 团队正在为 2.0 开发看起来很棒的丰富数据模型:tinyurl.com/pa7rxf8

标签: javascript angularjs rest restangular ngresource


【解决方案1】:

我认为没有现有的 JS 模型/持久层可以跟踪,PATCH 只会更改值。

我对 AngularJS 2.0 的数据层寄予厚望:http://tinyurl.com/pa7rxf8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    相关资源
    最近更新 更多