我离开路线时需要删除模型。我在路线中使用以下内容:
actions : {
willTransition: function(transition){
//Cleanup search model
var model = this.modelFor('route1.index');
model.deleteRecord();
//At this point the model.get('isDeleted') = true
}
}
当我转换到我的新路线route1.route2
时,从ember检查器,我仍然可以看到该模型及其isDeleted
属性现在为假。
为什么这不起作用?
答案 0 :(得分:1)
首先,在您进入路线之前,系统也会调用willTransition
,因此您必须确保转换的目标与当前路线不同:
if (transition.intent.name !== this.routeName)
然后,你可以使用类似的东西:
var model = this.modelFor(this.routeName);
而不是手动输入路线名称。
您是如何检查模型是否未删除的?也许你创建了一个新的?
答案 1 :(得分:1)
您需要在致电save()
deleteRecord()
方法
actions : {
willTransition: function(transition){
//Cleanup search model
var model = this.modelFor('route1.index');
model.deleteRecord();
model.save();
}
}
或者只使用model.destroyRecord();
,因为它同时使用