Ember.js Emberjs-如何在RC1中访问路由器

Ember.js Emberjs-如何在RC1中访问路由器,ember.js,ember-router,Ember.js,Ember Router,在emberjspre2中,我们可以从任何地方访问路由器 App.get('router') 有人能为emberjsrc1提供类似的代码吗 谢谢 有人能为emberjs rc1提供类似的代码吗 Emberjs rc1不会以这种方式公开路由器 作为替代,您应该通过本地引用访问路由器 来自控制器:this.get('target') 从视图:this.get('controller.target')) 模特:不,只是不要这样做 从控制台:可以,但请记住 不仅仅是路由器,过去可以通过全局常量访问

在emberjspre2中,我们可以从任何地方访问路由器

App.get('router')
有人能为emberjsrc1提供类似的代码吗

谢谢

有人能为emberjs rc1提供类似的代码吗

Emberjs rc1不会以这种方式公开路由器

作为替代,您应该通过本地引用访问路由器

  • 来自控制器:this.get('target')
  • 从视图:this.get('controller.target'))
  • 模特:不,只是不要这样做
  • 从控制台:可以,但请记住

不仅仅是路由器,过去可以通过全局常量访问的几乎所有东西现在都被隐藏了。这是因为使用全局常量访问实例会破坏封装,虽然这对于控制台来说很好,但应该避免在应用程序代码中使用它。

您的用例是什么?我相信路由器被隔离是有原因的。如果您只想转换到另一个路由,您可以在控制器内执行类似以下操作:
this.get('target').transition('other.route')
,从一个路由内只需执行
this.transition('other.route')
,使用App.container(现在的container)在ember.js内可能不是一个好主意。。。但是,在与其他框架、遗留代码等交互时使用它会怎么样呢?应该有一个用例,但我还没有找到。似乎您希望尽可能地隔离遗留代码。因此,如果从您的ember代码中访问私有方法(如容器)是一个坏主意,那么在与另一个框架交互时访问它可能更糟糕。但是如果我需要ember应用程序对其他地方发生的事情做出反应,该怎么办?对于这个简单的用例,使用Instrum entation()是正确的做法吗?我认为这要视情况而定。你能说得更具体些吗?例如,在我的例子中,我需要让Ember.js通过网络视图对从和Android应用程序调用的代码做出反应。因此,在JavaScript世界和Java世界之间有一个公共接口是必要的。该接口可能是一个封装的对象,但它需要能够使Ember.js路由器对更改应用程序状态做出反应。这种用例在Ember中没有很好的定义。例如,AngularJS通过提供服务(可能是我的接口)和依赖注入,似乎在这方面做得更好。