当您从index.html#/ admin / authors / 1 / edit转换为index.html#/ admin / authors / 2 / edit时,在路径上停用不会被称为。
当您从index.html#/ admin / authors / 1 / edit转换为index.html#/ admin / authors / new时,在路径上停用。
我希望在两种情况下都可以调用deactivate?
在路由级别是否有另一种方法来检测您是否从../1/edit切换到../2/edit?
我需要在主详细信息视图中显示(主列表是所有作者的列表,详细信息是包含每个作者属性的文本字段的表单)。如果用户在列表中选择了另一位作者并且前一位作者未经保存而被修改,我需要回滚该事务或询问用户“您是否要保存更改?”。
答案 0 :(得分:6)
在这种情况下不会调用停用,因为编辑路径仍处于活动状态。要检测从../1/edit切换到../2/edit,请使用路由的willTransition
事件。例如:
App.FormRoute = Ember.Route.extend({
actions: {
willTransition: function(transition) {
if(!this.controller.get('canNavigate')) {
alert('non-empty form!');
transition.abort();
}
}
}
});
有关更多示例,请参阅此要点:https://gist.github.com/machty/5647589