在我的应用程序中,我有一个项目列表和一个删除最后一个的按钮。然后在我的 Controller 上,我写了以下动作:
removeLastItem: ->
lastItem = current_order.get('items').get('lastObject')
lastItem.deleteRecord()
App.store.commit()
我的问题是我持续快速单击按钮时出现。在某个时候似乎
store.commit()尚未完成(该项目仍然很脏),它已经在为另一个项目调用store.commit(),并抛出以下错误:
我已经尝试过将此代码放入RunLoop或Transaction中,但没有任何效果。
有什么线索吗? :)
最佳答案
您可以尝试其他方法,例如禁用按钮,直到触发记录的didDelete
事件为止。
例:
removeLastItem: ->
# get the reference to your button and disable it
lastItem = current_order.get('items').get('lastObject')
lastItem.deleteRecord()
lastItem.on 'didDelete', =>
# reenable your button again
lastItem.on 'becameError', =>
# reenable your button again and notify user?
App.store.commit()
有关模型生命周期以及您可以收听的所有事件的信息,请参见here。
希望能帮助到你。