重置路线的模型

时间:2014-03-29 19:08:09

标签: ember.js

我有一条路线负责在财务应用中创建交易。当用户添加了交易时,他们可能希望进入更多交易,因此我不会过渡。我的问题是,如何重置附加到路线的模型,使其成为一个全新的记录(我使用的是ember数据)?

2 个答案:

答案 0 :(得分:4)

保存记录后,通过调用路径model()获取新记录并将其设置为相应控制器的model属性:

App.TransactionRoute = Ember.Route.extend({
  model: function() {
    return this.store.createRecord('transaction');
  }

  actions: {
    save: function() {
      var model = this.modelFor('transaction');
      var controller = this.controllerFor('transaction');
      var route = this;

      model.save().then(function(){        
        var newModel = route.model();
        controller.set('model', newModel);
      });
    }
  }
});

答案 1 :(得分:0)

您可以通过以下方式执行模型钩子调用路径中的刷新方法:

App.TransactionRoute = Ember.Route.extend({
    model: function() {
    return this.store.createRecord('transaction');
    },
    actions: {
           newTransaction: function() {
                           this.refresh();
           }
    }
});

App.TransactionController = Ember.ObjectController.extend({
    actions: {
        save: function() {
              self = this;
              this.get('model').save().then(function(){
                     self.send('newTransaction');
              });
        }
    }
});