Ember:从应用程序外部更改路线事件

时间:2015-11-30 11:59:59

标签: javascript ember.js routes browser-history

这是上下文。我正在开发一个Ember应用程序,它将嵌入Drupal页面。 只有问题:应用程序的菜单必须位于drupal页面中。

所以我试图找到一种方法来更新页面的url(来自应用程序外部)并获取更改Ember内部URL的事件,以便我可以像往常一样应用路径。

我试过了:

  • history.pushstate()即可。但它不会触发“popstate”,因此我无法获得任何回调。
  • 在ember配置中使用“hash”url type ,然后从Ember内部获取hashchange事件。它有效,但我想使用“历史”网址类型

我必须尝试:

    在Ember应用程序中
  • ,在外部菜单上获取点击事件,然后应用我的路线。 (但它似乎不是一个非常干净的解决方案,是吗?)

我可以做任何想法吗?

感谢您的帮助!

配置:

  • Ember:1.13.7
  • Ember数据:1.13.8
  • jQuery:1.11.3

1 个答案:

答案 0 :(得分:1)

我认为大多数人会建议不要做这样的事情,Ember真的不是为了从外面控制你应用程序的较小部分,也没有提供任何方法。

如果您必须这样做,调度Ember正在侦听的自定义事件可能是最不重要的事情。您可以从自定义事件中通过event.detail传递路线名称,然后使用this.transitionTo(event.detail)