新的ember路由器一直在抛弃我。有没有人知道如何手动触发网址更改(1)不在路由器中使用重定向(2)不使用linkTo帮助程序?
似乎这样:
App.container.lookup('router:main').router
不再有效,就像今天的版本一样。
答案 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');