我正在尝试从会话初始化程序注册“会话”服务。
/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
我可以不注册服务吗?
答案 0 :(得分: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
时完全相同。