Ember.js Ember CLI,无法注册服务
我正在尝试从会话初始值设定项注册“会话”服务 /services/session.jsEmber.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
/* 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”之后