javascript - 上下文相关的导航栏

标签 javascript ember.js

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

jsFiddle

但是,激活事件并不是我用来确定路线何时更改的,而是仅在第一次访问路线时触发(遍历路线树不会触发它),因此我的上下文加载不一致。

解决这个问题的最佳方法是什么?我知道 serializerenderTemplatesetupController 在每次路由更改时都会触发,但这些方法都不是以这种方式使用的。有没有办法向我的路线添加自定义事件,该事件会在每次路线更改时触发?

顺便说一句,我对 ember 完全陌生,所以我可能会以完全错误的方式处理这个问题,在这种情况下,我渴望听到一个比我的更好的解决方案。

更新:

感谢 kingpin2k 的提示,我能够稍微清理一下我的代码,以供将来引用,这是更新的 fiddle :

jsFiddle

最佳答案

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

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

http://jsfiddle.net/FZ29Q/

关于javascript - 上下文相关的导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23973236/

相关文章:

javascript - 将 "@daily-co/daily-js"导入 SvelteKit 应用程序会引发 "global is not defined"错误

javascript - d3js v4 : independent multiple axes scaling and panning

javascript - JS 未按预期运行

ember.js - 如何在 `selected` 标记上动态设置 `<option>` 属性?

ember.js - 为什么我的 Ember.Router 给出这个 TypeError?

javascript - 通过 Ember.js 中的操作更改其值的计算属性

javascript - 如何在JS中使用Ruby的asset_url(JS中的Ruby插值??)

JavaScript 火狐问题

javascript - 在 Ember.js 中使用 sendAction() 实现数据向下操作向上模式

javascript - Ember.js:如何让子路由显示在父资源中