我试图将Logger对象注入所有Ember控制器,视图和模型。
我在这里尝试了这个例子:http://emberjs.com/blog/2013/02/15/ember-1-0-rc/在" REGISTER AND INJECT"部分,它似乎没有用。
var App = window.App = Em.Application.create({
...
Logger: Em.Object.extend(),
...
});
App.register('logger:main', Em.Object.extend());
App.inject('model', 'logger', 'logger:main');
App.inject('view', 'logger', 'logger:main');
App.inject('controller', 'logger', 'logger:main');
在我看来,当我尝试获取记录器时,它是未定义的:
this.get('logger');
关于我做错的任何想法?
答案 0 :(得分:1)
我不确定为什么该视图没有注入logger
,但解决方法是从视图的控制器中获取logger
:
App = Ember.Application.create({});
App.Logger = Ember.Object.extend({
log: function(message) {
console.log(message);
}
});
App.register('logger:main', App.Logger);
App.inject('model', 'logger', 'logger:main');
App.inject('view', 'logger', 'logger:main');
App.inject('controller', 'logger', 'logger:main');
App.TestView = Ember.View.extend({
didInsertElement: function() {
this.get("controller.logger").log("log through controller");
}
});