0

试图让表单重置功能正常工作。此实现工作一次,但第二次将无法工作。

第二次触发取消事件时发生以下错误:

未捕获的错误:尝试willSetProperty在 rootState.deleted.saved 状态下处理事件。用 {reference: [object Object], store: , name: name} 调用

App.NewPageRoute = Ember.Route.extend
  model: (params) ->
    transaction = @get('store').transaction()
    transaction.createRecord(App.Page, siteId: params.site_id)


App.NewPageController = Ember.ObjectController.extend
  submit: ->
    @content.get('transaction').save()

  cancel: ->
    @content.get('transaction').rollback()
4

1 回答 1

0

来自以下文档DS.Transaction::rollback

事务回滚后,属于它的任何记录都将返回到存储的默认事务,不应再次使用当前事务。

一个简单的解决方法是在回滚后创建一个新事务。

cancel: ->
  siteId = @get('model.siteId')
  @content.get('transaction').rollback()
  transaction = @get('store').transaction()
  newModel = transaction.createRecord(App.Page, siteId: siteId)
  @set('model', newModel)
于 2013-08-17T22:43:21.170 回答