如何访问新Ember路由器的实例?该API文档似乎是指旧路由器或不正确:http://emberjs.com/api/classes/Ember.Router.html新Ember路由器的访问实例
回答
RouterV2不容易通过全局常量访问,使事情变得更加困难的'错误'的方式。要记住的主要是你不应该通过全局变量访问路由器(或其他任何东西)。这样做通常是不好的做法,导致代码很难测试。不幸的是,旧路由器很容易做到像App.router.transitionTo('whatever')
这样的东西 - 你可以找到遍布全球的例子,但这不是一个好主意。
除了使用全局引用外,ember仅在需要的地方向路由器注入局部引用。
- 从模型:无法访问。模型不应该与路由器通话
- 来自控制器:
router = this.get('target')
- 从视图:视图不应该访问路由器,但它发送到控制器的事件会冒泡。例如:
this.get('controller').send('search', term)
- 从模板:使用
{{action}}
或{{#linkTo}}
助手发送事件(通过控制器)或过渡到另一个URL。
更多详细信息,请参见本附注承诺: https://github.com/emberjs/ember.js/commit/5becdc4467573f80a5c5dbb51d97c6b9239714a8
** **更新
我把一个避雷聊上更详细的为1月EmberNYC新的路由器聚会 - 幻灯片的位置:How I learned to stop worrying and love the router
我相信这部作品所有的地方:
App.Router.router.transitionTo('home')
我在视图中使用它。我知道这里有一些代码味道。但是,它的工作。
绝对是一个代码味道访问。相反,发送一个动作并在一条路径中处理它以进行转换。 –
你可以试试这个:
App.__container__.lookup('router:main').transitionTo('name_of_your_route');
这是可以做的调试,但应避免在生产代码。 –
- 1. Ember路由器问题
- 2. 从Ember的非嵌套路由访问路由模型js
- 3. Angular 2路由器实例化问题
- 4. 如何从Ember中的路由访问控制器?
- 5. 在新的Ember rc1路由器中挂接“根”路由
- 6. Ember重新加载路由器恢复
- 7. Ember的路由器pre4
- 8. Ember路由器动态路由
- 9. Ember和Ember-cli动态路由问题
- 10. 实例化路由器Backbone
- 11. 路由与Ember问题
- 12. Durandal 2.0路由器访问
- 13. emberjs-RC2-如何从控制器和操作访问路由器实例不冒泡到路由器
- 14. AngularJS新的路由器不能实例化控制器
- 15. Ember中的路由刷新事件
- 16. 角UI路由器控制器多次实例 - 直接路由
- 17. 访问组件内的当前Ember路由
- 18. 如何从Ember中的路由访问查询参数1.7
- 19. SAPUI5:在manifest.json中指定路由器配置时无法访问路由器实例
- 20. 铁路由器:访问路由器功能中的路由数据
- 21. Ember不会调用路由器的setupController
- 22. Ember路由器中的重定向
- 23. Ember显式路由
- 24. 访问控制器实例
- 25. Ember控制器似乎在模板和路由中创建了多个实例?
- 26. 验证使用新的Async Ember路由器的转换
- 27. 骨干路由器实例化
- 28. Ember.js:访问父路由的控制器
- 29. 从路由的beforeModel访问控制器
- 30. 阻止访问路由器的网站?
而且从路线是为'得到(这一点,“路由器”)' – Pavel