假设我有两个服务X和Y.我想在彼此中使用两种服务的方法。如果我使用像这样的intializer注入服务
application.inject('service:X', 'Y', 'service:Y');
application.inject('service:Y', 'X', 'service:X');
它将获得异常
Uncaught RangeError: Maximum call stack size exceeded
任何建议这样做都会非常有帮助吗?
答案 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()
});