在常规的emberjs应用程序中,你可以做到
App.__container__.lookup("controller:application")
我怎样才能实现这个最新版本的ember-cli?我看不到任何要引用的全局应用程序对象。
答案 0 :(得分:4)
假设您生成了这样的应用:
ember new kittens
您的调试语句将是:
Kittens.__container__.lookup("component:bootstrap-datepicker")
答案 1 :(得分:0)
在Ember CLI中定义初始化程序时,您可以执行以下操作:
ember generate initializer my-cool-init
在文件中:app/initializers/my-cool-init.js
有类似的内容:
export default {
name: 'my-cool-init',
initialize: function initialize(container/*, application*/) {
var foobar = container.lookup('controller:application');
// inject or preload stuff etc
}
};
http://emberjs.com/api/classes/Ember.Application.html#toc_initializers
http://emberjs.com/guides/understanding-ember/dependency-injection-and-service-lookup/
答案 2 :(得分:0)
ember-export-application-global
插件将您的应用程序公开为全局变量查看Ember Inspector on the Chrome web store。它是Chrome扩展程序,可为您的Ember应用程序提供调试和检查工具。
您可以直观地访问容器,当前视图层次结构,Ember-Data商店内容列表等。
例如,如果您在discuss.emberjs.com上打开检查器,则可以看到有11个控制器,您可以检查每个控制器以查看其属性。您甚至可以将对象发送到控制台,以便以编程方式使用它们。
ember-export-application-global
另一种方法是使用ember-export-application-global ember-cli插件包。此包设置一个全局变量,其中包含对应用程序的引用。这允许您以最初提到的方式访问容器。