Ember.js Ember CLI,无法注册服务

Ember.js Ember CLI,无法注册服务,ember.js,ember-cli,Ember.js,Ember Cli,我正在尝试从会话初始值设定项注册“会话”服务 /services/session.js /* Imports */ import Ember from 'ember'; /* Session */ var Service = Ember.Object.extend({ sayHi: function() { console.log('Hello From Session Service'); } }); /* Exports */ export

我正在尝试从会话初始值设定项注册“会话”服务

/services/session.js

/* Imports */
import Ember from 'ember';

/* Session */
var Service =  Ember.Object.extend({
    sayHi: function() {
        console.log('Hello From Session Service');      
    }
});

/* Exports */
export default Service;
/初始化器/session.js

/* Session Initializers */
var Initializer = {
    name: 'Session',
    initialize: function(Container, App) {

        App.register('service:session', App.Session);
        // This line doesn't work. See error below.

        App.inject('route', 'Session', 'service:session'); 
        // This works, I can access Session from my routes.
        App.inject('controller', 'Session', 'service:session');
        // This works, I can access Session from my 

    }
};

/* Export */
export default Initaializer;
错误:未捕获类型错误:尝试注册未知工厂:
服务:会话


无法注册服务吗?

您不需要注册服务,解析程序将为您查找。我会把事情调整成这样:

app/services/session.js:

import Ember from 'ember';

export default Ember.Object.extend({
  sayHi: function() {
    console.log('Hello From Session Service');      
  }
});
export default {
  name: 'session-service',
  initialize: function(container, app) {
    app.inject('route', 'session', 'service:session');
    app.inject('controller', 'session', 'service:session');
  }
};
app/initializers/session service.js:

import Ember from 'ember';

export default Ember.Object.extend({
  sayHi: function() {
    console.log('Hello From Session Service');      
  }
});
export default {
  name: 'session-service',
  initialize: function(container, app) {
    app.inject('route', 'session', 'service:session');
    app.inject('controller', 'session', 'service:session');
  }
};

这正是使用
ember generate service session

时得到的结果,我的印象是,如果我想从另一个服务访问此服务,必须先注册它。不是这样吗?我正在用生成器成功地初始化服务,就像这样(没有寄存器),但是这些服务彼此都无法访问,即使在我添加“after”之后