TransitionTo和新的Ember路由器

时间:2013-01-07 20:30:50

标签: ember.js ember-router

新的ember路由器一直在抛弃我。有没有人知道如何手动触发网址更改(1)不在路由器中使用重定向(2)不使用linkTo帮助程序?

似乎这样:

App.container.lookup('router:main').router

不再有效,就像今天的版本一样。

2 个答案:

答案 0 :(得分:3)

这在新的ember路由器中似乎很难做到,因为ember正在努力阻止你以这种方式编写代码。而不是通过App访问路由器(或其他任何)的实例,您的ember应用程序代码应该使用框架在运行时注入的属性。正如上面提到的@ sly7_7,您的视图将可以访问控制器,控制器可以触发转换,如:

view.get('controller').transitionTo('state')

根据第三方库的工作方式,您可以通过触发dom中的事件(由视图处理)或通过在didInsertElement

要记住的主要事情是App.anything-in-lowercase通常是不好的做法。尽可能尝试让框架负责实例化并将应用程序类连接在一起。

有关详细信息,请参阅此提交中的说明:https://github.com/emberjs/ember.js/commit/5becdc4467573f80a5c5dbb51d97c6b9239714a8

答案 1 :(得分:0)

你可以试试这个:

App.__container__.lookup('router:main').transitionTo('name_of_your_route');