Ember.js RC1 - 注册并注入

时间:2013-02-25 22:40:12

标签: ember.js

我试图将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');

关于我做错的任何想法?

1 个答案:

答案 0 :(得分:1)

JSBin Example

我不确定为什么该视图没有注入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");
  }
});