Javascript 上下文相关的导航栏

Javascript 上下文相关的导航栏,javascript,ember.js,Javascript,Ember.js,我正在尝试在Ember中构建一个Android导航栏。我想在行动栏显示路线(友好)的名称,并有上下文相关的按钮的右侧。我走了很长一段路,这个JSFIDLE将更清楚地解释事情: 然而,激活事件不是我用来判断路由何时被更改的,它只在第一次访问路由时触发(遍历路由树不会触发它),因此我的上下文没有一致地加载 解决这个问题的最好办法是什么?我知道,序列化、渲染模板和设置控制器会在每次路由更改时触发,但这些方法都不打算以这种方式使用。是否有一种方法可以将自定义事件添加到我的路由中,在每次路由更改时触发

我正在尝试在Ember中构建一个Android导航栏。我想在行动栏显示路线(友好)的名称,并有上下文相关的按钮的右侧。我走了很长一段路,这个JSFIDLE将更清楚地解释事情:

然而,激活事件不是我用来判断路由何时被更改的,它只在第一次访问路由时触发(遍历路由树不会触发它),因此我的上下文没有一致地加载

解决这个问题的最好办法是什么?我知道,
序列化
渲染模板
设置控制器
会在每次路由更改时触发,但这些方法都不打算以这种方式使用。是否有一种方法可以将自定义事件添加到我的路由中,在每次路由更改时触发

顺便说一句,我对余烬完全是新手,所以我可能完全走错了方向,在这种情况下,我渴望听到一个比我的更好的解决方案

更新: 多亏了kingpin2k的提示,我能够稍微整理一下我的代码,以下是更新的fiddle供将来参考:


didtransformation
/
willTransition
就是出于这个原因创建的。在您的情况下,
didtransformation
将最有意义

actions: {
   didTransition: function(){
      console.log('level two transition');
   },
}

在建立了几十个这样的系统之后,我是这样做的。我的标记总是包含完整的导航,每个分支上都有一个唯一的类名或id。当导航发生时,我会在主体上更新一个属性,数据导航。然后,我可以使用css根据路径显示/隐藏我的叶子。例如:body[data nav=about].about{display:inline block;}