依赖于上下文的导航栏

时间:2014-05-31 17:27:21

标签: javascript ember.js

我正试图在Ember中构建一个Android action bar-like导航栏。我希望操作栏显示路线(友好)名称,并在右侧显示依赖于上下文的按钮。我走了很长一段路,这个jsFiddle会更清楚地解释一下:

jsFiddle

然而,激活事件不是我用来弄清楚路线何时被改变,只是在第一次访问路线时触发(遍历路线树而不是触发它)因此,我的上下文不会被一致地加载。

解决此问题的最佳方法是什么?我知道serializerenderTemplatesetupController会在每次路线更改时触发,但这些方法都不是以这种方式使用的。是否有一种方法可以将自定义事件添加到我的路线中,这会在每次路线更改时触发?

另一方面,我完全不熟悉,所以我可能会以错误的方式解决这个问题,在这种情况下,我渴望听到一个比我更好的解决方案。

更新

感谢kingpin2k的提示,我能够清理一下我的代码,以便将来参考这里更新的小提琴:

jsFiddle

1 个答案:

答案 0 :(得分:2)

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

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

http://jsfiddle.net/FZ29Q/