EmberJS确定事务成功提交的时间

时间:2013-04-01 15:38:46

标签: ember.js ember-data

我正在使用EmberJS和Ember Data(修订版11),并且当交易成功完成时我正试图转换到另一条路线。问题是此页面允许对模型进行编辑,以及向该模型上的hasMany集合添加和删除项目。

我目前的情况如下:

myModel.one "didUpdate", this, ->
    @transitionTo "anotherRoute", myModel

myModel.transaction.commit()

如果myModel已被更改,那么只有在其中任何一个已经更改的情况下才会转换。

我正在寻找一种方法:

  • 当myModel的所有hasMany子项已成功保存时,运行didUpdate事件
  • 当所有模型都成功保留时,挂钩回调该事务。

1 个答案:

答案 0 :(得分:3)

我也遇到过这个问题。我目前的解决方案是观察交易状态:

observer = (target, path) =>
  if target.get(path) is 'saved'
    target.removeObserver path, null, observer
    @doSomething()

@get('content').addObserver 'stateManager.currentState.name', null, observer
@get('content.transaction').commit()

didUpdate不起作用的事实可能是一个错误。如果我直接在模型上定义回调,它就会被调用。