ember-data:如何制作保存/保存的Flash消息

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,所以如果我可以将它扩展为给我这条信息,那也可以.

Con*_*ham 2

那么,您可以简单地创建一个带有 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,我希望我能想出更好的方法观察提交的状态(如果我这样做的话,当然会发回此处)。