Ember组件查找/调试/测试

时间:2013-08-26 11:03:07

标签: javascript debugging testing ember.js lookup

如何从另一个控制器访问ember组件的控制器? 是否有像__container__.lookup这样的后门方式才知道有这个组件实例? 当我使用__container__.lookup尝试"component:<myComponentname>"时,它给了我一个组件实例,该组件未在应用程序的任何位置使用。

TL; DR
如何测试Ember Component对象?

1 个答案:

答案 0 :(得分:2)

These lines的{p> ember-inspector揭示了如何获得&#34;查看注册表,&#34; DOM元素ID到Ember 2.x中的各自Ember.Component实例或1.x中的Ember.View实例的映射。

viewRegistry: computed('application', function() {
  return this.get('application.__container__').lookup('-view-registry:main') || View.views;
}),

所以如果你的DOM中有一个Ember组件,比如

<span id="ember1234">Hi I'm controlled by Ember</span>

你可以像

那样查找
var viewRegistry = application.__container__.lookup('-view-registry:main') || View.views;
var myComponentInstance = viewRegistry.ember1234;