https://twitter.com/wycats/status/393826083575185408
Ember 1.1.2 已经发布了,期待 Ember Data 1.0
#2 楼 @darkbaby123 不太了解 custom action 是什么,这样不是吗:
{{action 'foo'}}
// App.BarController
actions: {
foo: function () { ... }
}
不是,是说的 REST API 的自定义 url。
你知道默认的 REST API 有五个 url:
但有时需要超出这些之外的,自定义的 url,比如:
不然默认的五个 url 是不够应对实际使用情况的。
在 Ember Data 里面要实现这个比较麻烦。需要自定义的太多,没有很方便的处理方法。作为 Ember Data 的 json 规范的 JSON API 也完全没有提及超出默认 REST API 的情况应该怎么设计 API。而且在 Github issues 里面我也没搜到相应的讨论和解决方案。所以我才说不知道最终版会是什么样子,不知道会不会支持这种特性。
关于一些 Ember Data 欠缺的东西,可以看看 10 Things You Can Do With EPF (That You Can't Easily Do With Ember Data) 。虽然文章比较老,现在一些东西比如 transaction 已经被 Ember Data 改掉了,但文章还是值得参考。
fork 特性倒是有提及,但也仅仅是提及而已,说不定会等到 Ember Data 1.x 去了。
Ember Data 的 beta 版我只用了很短一段时间,感觉是做好了的功能都考虑的比较完善,但一旦你需要它没有的功能,就比较难扩展。所以用到最后估计会作为 contributor 去一起加功能和修 bug。就像 EPF 作者说的一句话:If you use Ember Data, you will be a contributor.
App.Order = DS.Model.extend
...
editOrderDeliveryInfo: (params) ->
self = this
$.ajax(
type: "PUT"
url: "/api/orders/#{self.get('id')}/set_delivery_info"
data:
set_delivery_info:
express_number: params["express_number"]
delivery_total: params["delivery_total"]
delivery_place_id: params["delivery_place"]
express_info_id: params["express_info"]
cost_total: params["cost_total"]
).then( ->
self.reload()
)
现在来说,在 ember data 里面,我是这样写的,不知道怎么样的情况下需要对 ember data 添加新的特性。