我正在尝试在ViewController的beforeInit
中查找对我的某个组件的引用,因此我可以在myComponent
创建之前设置一些变量,但lookupReference
不会在beforeInit调用中找到我的组件...它在ViewController的init方法中找到,但我假设因为视图实际上没有被渲染,所以没有创建引用。
所以我想我会尝试initComponent
,但是再一次,lookupReference不能在那里工作......我知道我可以创建一个itemId并在initComponent中查找它,但这是最后的手段我......我宁愿使用参考文献。请参阅this Fiddle示例和代码:
Ext.application({
name: 'Fiddle',
launch: function() {
Ext.define('MyViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.myview',
beforeInit: function() {
console.log('beforeInit: I want this to exist before myComponent is rendered', this.lookupReference('myComponent'));
},
init: function() {
console.log('init', this.lookupReference('myComponent'));
}
});
Ext.define('MyView', {
extend: 'Ext.panel.Panel',
controller: 'myview',
title: 'My View',
height: 400,
width: 400,
items: [{
xtype: 'textfield',
reference: 'myComponent',
fieldLabel: 'My Component'
}],
initComponent: function() {
// I want this to happen before myComponent is rendered
console.log('initComponent: I want this to exist before myComponent is rendered', this.lookupReference('myComponent'));
this.callParent();
console.log('initComponent callParent', this.lookupReference('myComponent'));
}
});
Ext.create('MyView', {
renderTo: Ext.getBody()
});
}
});
有没有人对如何完成这样的事情有任何指导?