从路由中的deactivate hook触发model.get('transaction')。rollback()

时间:2013-05-07 20:52:26

标签: ember.js ember-data

当模型为get('transaction').rollback()时,如何在deleteRecord()路径挂钩中执行模型的deactivateisNew?我无法弄清楚如何从钩子中访问模型。

app.js

App.Router.map(function() {
  this.resource('users', function() {
    this.route('new');
  })
});

App.UsersNewRoute = Ember.Route.extend({
  model: function() {
    return App.User.createRecord();
  },

  activate: function() {
    this.controllerFor('users').set('newUserCreate', true);
  },

  deactivate: function() {
    this.controllerFor('users').set('newUserCreate', false);
  }
});

2 个答案:

答案 0 :(得分:3)

这是在模型上执行rollback()的代码:

deactivate: function() {
  this.controllerFor('users').set('newUserCreate', false);
  if (this.currentModel.get('isNew')) {
    this.currentModel.get('transaction').rollback();
  }

特别感谢@ sly7_7解决这个问题。

答案 1 :(得分:0)

路由对象了解其控制器。你也应该能够这样做:

deactivate: function() {
  var model = this.get('controller.content');
  if (model.get('isNew')) {
    model.deleteRecord();
  };
};