6

新的 ember 路由器一直让我陷入困境。有谁知道当您 (1) 不在路由器中使用重定向 (2) 不使用 linkTo 帮助器时如何手动触发 url 更改?

这似乎是:

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

从今天的版本开始,不再有效。

4

2 回答 2

3

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

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

根据您的第三方库的工作方式,您可以通过触发 dom 中的事件(由视图处理)或在视图从内部呈现时注册回调来执行此操作didInsertElement

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

有关更多详细信息,请参阅此提交的注释:https ://github.com/emberjs/ember.js/commit/5becdc4467573f80a5c5dbb51d97c6b9239714a8

于 2013-01-07T23:33:03.033 回答
0

你可以试试这个:

App.__container__.lookup('router:main').transitionTo('name_of_your_route');
于 2013-08-22T16:38:34.957 回答