1

我正在尝试将 Logger 对象注入到所有 Ember 控制器、视图和模型中。

我在这里尝试了这个例子: http: //emberjs.com/blog/2013/02/15/ember-1-0-rc/在“注册和注入”部分,它似乎不起作用。

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');

关于我做错了什么的任何想法?

4

1 回答 1

1

JSBin 示例

我不确定为什么视图没有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");
  }
});
于 2013-02-26T01:03:50.613 回答