灰烬:从一条路线转换到另一条路线时停用未调用

cyc*_*arc 2 ember.js

当您从index.html#/ admin/authors/1/edit转换为index.html#/ admin/authors/2/edit时,不会调用路由上的deactivate .

当您从index.html#/ admin/authors/1/edit转换为index.html#/ admin/authors/new时,将调用路由上的deactivate .

我希望在两种情况下都可以调用deactivate?

在路由级别是否有另一种方法来检测您是否从../1/edit切换到../2/edit?

我需要在主详细信息视图中显示(master是所有作者的列表,详细信息是包含每个作者属性的文本字段的表单).如果用户在列表中选择了另一位作者而前一位作者未经保存而被修改,我需要回滚该事务或询问用户"你想保存更改吗?".

Mik*_*tti 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();
      }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

有关更多示例,请参阅此要点:https://gist.github.com/machty/5647589