如果不保存,Ember.js会丢弃创建的模型
ember.js discard created model if not saving
我遵循了教程的三个部分,除了一个例外,一切都很好。当我转到"添加图书"页面,然后在没有保存的情况下导航到"图书列表"时,图书列表会被一个空项扩展。我怀疑原因是下面的代码,其中新模型是在保存之前创建的,如果不保存表单则不会删除。有什么办法解决这个问题吗?
Embertest.BooksNewRoute = Ember.Route.extend({
model: function() {
return this.get('store').createRecord('book');
},
actions: {
create: function() {
var newBook = this.get('currentModel');
newBook.save();
this.transitionTo('books');
}
}
});
From http://emberjs.com/api/classes/Ember.Route.html#method_deactivate
在您的路由上添加deactivate
功能。在退出当前路由之前调用。你可以回滚刚才在模型中创建的记录,像这样:
model: function(params) {
return this.get('store').createRecord('book');
},
deactivate: function() {
this.currentModel.rollback();
},
我通过向willTransition事件附加一个销毁记录的操作来解决这个问题,如下所示。有人会评论这是否是正确的方法吗?
Embertest.BooksNewRoute = Ember.Route.extend({
model: function() {
return this.get('store').createRecord('book');
},
actions: {
willTransition: function() {
if (this.currentModel.get('isNew')) {
this.get('currentModel').deleteRecord();
};
},
create: function() {
var newBook = this.get('currentModel');
newBook.save();
this.transitionTo('books');
}
}
});
相关文章:
- 取消在集合中创建模型.与重复作战
- Mongoosejs:如何在没有Schema的情况下创建模型
- 如何创建模型的实例并加载它
- 煎茶触摸 2 商店 - 在创建模型之前修改响应
- 使用猫鼬重新创建模型
- 使用AngularJS创建模型
- 正在获取已创建模型的ID字段
- 在EmberJS中创建模型实例的问题
- 在单独的文件中使用Sequelize创建模型,并在项目中使用它们
- 当模型依赖于另一个模型时创建模型
- 当模式位于单独的文件中时,创建模型时是否存在任何问题
- 当在环回中创建模型实例时,如何以编程方式填充字段
- 在expressjs中创建模型
- 在Backbone.js中从非json服务器响应创建模型实例
- 如何在动作链接中传递选择列表值,而不使用javascript并为其创建模型
- 在Javascript中创建模型对象列表
- 使用不同的URL来创建模型的主干方法是什么?
- 创建模型可以清除屏幕
- 从带有主干的服务器获取数据,创建模型和集合
- Node.js从json创建模型对象