Jo *_*iss 6 ember.js ember-data
为了在我的应用程序顶部制作一个黄色的"保存"/"已保存"指示符消息,我想要一个布尔属性,指示当前是否有任何余烬数据记录在飞行中.
我试过这个:
App.store = DS.Store.create
isSaving: (->
for record in this.get('recordCache')
if record?.getPath('stateManager.currentState.name') == 'inFlight'
return true
return false
).property('recordCache.@each.stateManager.currentState.name')
Run Code Online (Sandbox Code Playgroud)
但后来我发现这recordCache是不可观察的.
我不仅仅使用交易,App.store.commit()所以我看了一下App.store.get('defaultTransaction'),但它没有产生任何有用的东西.
我正在使用RESTAdapter,所以如果我可以将它扩展为给我这条信息,那也可以.
那么,您可以简单地创建一个带有 didUpdate 属性的基本模型来处理显示通知消息,然后让每个模型扩展它。这确实是一个权宜之计,但暂时有效:
App.Model = DS.Model.extend
didUpdate: ->
# invoke your notification
alert("All changes saved!")
App.User = App.Model.extend()
Run Code Online (Sandbox Code Playgroud)
但是......这将为每条更新的记录触发。因此,您可能希望以这样一种方式创建通知类,即它不会一次打开多个已保存的通知...但这取决于您。
我目前正在努力实现此拉取请求中的一些基本服务器验证方法https://github.com/emberjs/data/pull/376,我希望我能想出更好的方法观察提交的状态(如果我这样做的话,当然会发回此处)。