如何在emberjs中互相注入两个服务?

时间:2016-09-06 10:13:51

标签: ember.js

假设我有两个服务X和Y.我想在彼此中使用两种服务的方法。如果我使用像这样的intializer注入服务

application.inject('service:X', 'Y', 'service:Y');
application.inject('service:Y', 'X', 'service:X');

它将获得异常

Uncaught RangeError: Maximum call stack size exceeded

任何建议这样做都会非常有帮助吗?

1 个答案:

答案 0 :(得分:1)

您不需要使用初始化程序。只需简单地将服务注入另一个服务,就像不使用初始化程序一样。

// app/services/service-x.js
import Service from 'ember-service';
import service from 'ember-service/inject';

export default Service.extend({
  serviceY: service()
});

// app/services/service-y.js
import Service from 'ember-service';
import service from 'ember-service/inject';

export default Service.extend({
  serviceX: service()
});