Javascript 余烬跨对象调用公共代码

Javascript 余烬跨对象调用公共代码,javascript,ember.js,Javascript,Ember.js,我是新来的灰烬和有一个问题,关于在哪里放置通用代码。 考虑一个简单的场景。我有一个AJAX请求,我想在多个地方使用响应(比如说一条路由和一些控制器或两个不同的控制器) 我有两个问题 在Ember中,我可以从任何其他服务器访问任何控制器(比如X.js)吗 控制器(比如Y.js),只需使用 this.controllerFor(this.routeName) 如果上述情况属实,那么对于公共代码(即,在X控制器中有一个属性来保存公共API响应),然后在另一个控制器Y中使用它,这是一种更好的方法吗?还是

我是新来的灰烬和有一个问题,关于在哪里放置通用代码。 考虑一个简单的场景。我有一个AJAX请求,我想在多个地方使用响应(比如说一条路由和一些控制器或两个不同的控制器)

我有两个问题

  • 在Ember中,我可以从任何其他服务器访问任何控制器(比如X.js)吗 控制器(比如Y.js),只需使用 this.controllerFor(this.routeName)
  • 如果上述情况属实,那么对于公共代码(即,在X控制器中有一个属性来保存公共API响应),然后在另一个控制器Y中使用它,这是一种更好的方法吗?还是应该对公共代码使用Ember服务,并通过依赖项注入,使用公共代码/API响应
  • 这个用例的正确方法是什么

    我应该为公共代码和通过依赖关系使用余烬服务吗 注入,使用公共代码/API响应

    是的,你应该使用余烬服务

    原因:

    • 控制器将被移除,并在将来由组件替换
    • 您可以在任何控制器、路由甚至组件中注入服务
    • 更好的代码抽象和关注点分离