如何从另一个控制器访问 ember 组件的控制器?是否有一种后门方式,比如__container__.lookup
只知道有这个组件实例?当我尝试__container__.lookup
使用它时,"component:<myComponentname>"
它给了我一个组件实例,该实例没有在应用程序的任何地方使用。
TL;DR
如何测试 Ember 组件对象?
如何从另一个控制器访问 ember 组件的控制器?是否有一种后门方式,比如__container__.lookup
只知道有这个组件实例?当我尝试__container__.lookup
使用它时,"component:<myComponentname>"
它给了我一个组件实例,该实例没有在应用程序的任何地方使用。
TL;DR
如何测试 Ember 组件对象?
这些ember-inspector行揭示了如何获取“视图注册表”,即 DOM 元素 id 到Ember.Component
Ember 2.x 中的相应实例或Ember.View
1.x 中的实例的映射。
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;