Ember-CLI,无法注册服务

问题描述 投票:3回答:1

我正在尝试从会话初始化程序注册“会话”服务。

/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;

/initializers/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;

错误:未捕获的TypeError:尝试注册未知工厂: service:session

我可以不注册服务吗?

ember.js ember-cli
1个回答
3
投票

您无需注册该服务,解析器将为您查找。 我会调整看起来像这样:

应用程序/服务/ session.js:

import Ember from 'ember';

export default Ember.Object.extend({
  sayHi: function() {
    console.log('Hello From Session Service');      
  }
});

应用程序/初始化/会话service.js:

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时获得的完全相同。

© www.soinside.com 2019 - 2024. All rights reserved.