访问新Ember路由器的实例

bca*_*lla 10 ember.js

如何访问新Ember路由器的实例?API文档似乎是指旧路由器或不正确:http://emberjs.com/api/classes/Ember.Router.html

Mik*_*tti 35

RouterV2不容易通过全局常量访问,这使得以"错误"方式执行操作变得更加困难.要记住的主要事情是你不应该通过全局变量访问路由器(或其他任何东西).这样做通常是不好的做法,导致代码很难测试.不幸的是,使用旧的路由器很容易做到这样的事情App.router.transitionTo('whatever')- 你可以找到各处的例子,但这不是一个好主意.

ember不是使用全局引用,而是仅在需要它的地方为路由器注入本地引用.

  • 从模型:无法访问.模型不应该与路由器通信
  • 从控制器: router = this.get('target')
  • 从视图:View不应该访问路由器,但它发送到控制器的事件将会冒泡.例如:this.get('controller').send('search', term)
  • 从模板:使用{{action}}{{#linkTo}}帮助程序发送事件(通过控制器)或转换到另一个URL.

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

**更新**

我在1月EmberNYC聚会的新路由器上详细介绍了一个闪电话题 - 幻灯片在这里:如何学会停止担心并喜欢路由器的