Han*_*Han 6 ember.js ember-router
新的ember路由器一直在抛弃我.有没有人知道如何手动触发网址更改(1)不在路由器中使用重定向(2)不使用linkTo帮助程序?
看来这个:
App.container.lookup('router:main').router
Run Code Online (Sandbox Code Playgroud)
从今天的构建开始,不再有效.
这在新的 ember 路由器中似乎很难做到,因为 ember 正在努力阻止您以这种风格编写代码。不应通过Appember 应用程序代码访问路由器的实例(或其他任何东西),而应该使用框架在运行时注入的属性。正如 @sly7_7 上面提到的,您的视图将有权访问控制器,并且控制器可以触发如下转换:
view.get('controller').transitionTo('state')
Run Code Online (Sandbox Code Playgroud)
根据第三方库的工作方式,您可以通过触发 dom 中的事件(由视图处理)或在视图从内部渲染时注册回调来完成此操作didInsertElement
最重要的是要记住,这App.anything-in-lowercase通常是不好的做法。只要有可能,请尝试让框架负责实例化并将应用程序类连接在一起。
有关更多详细信息,请参阅此提交的注释:https://github.com/emberjs/ember.js/commit/5becdc4467573f80a5c5dbb51d97c6b9239714a8