在ExtJS中,如果你想在一个组件中使用另一个组件的实例,你可以使用以下方法:
// 创建第一个组件
Ext.define('MyApp.ComponentA', {
extend: 'Ext.Component',
html: '这是组件A'
});
// 创建第二个组件,并将组件A作为子组件添加到其中
Ext.define('MyApp.ComponentB', {
extend: 'Ext.Container',
items: [
{
xtype: 'componenta' // 使用xtype来引用组件A
}
],
html: '这是组件B'
});
this.down()
或this.child()
方法来获取子组件的实例。Ext.define('MyApp.ParentComponent', {
extend: 'Ext.Container',
items: [
{
xtype: 'componentb' // 使用xtype来引用组件B
}
],
initComponent: function() {
this.callParent(arguments);
// 获取组件B的实例
var componentB = this.down('componentb');
// 获取组件A的实例
var componentA = componentB.down('componenta');
}
});
// 在组件A中定义一个事件
Ext.define('MyApp.ComponentA', {
extend: 'Ext.Component',
html: '这是组件A',
listeners: {
click: function() {
this.fireEvent('componentAclick');
}
}
});
// 在父组件中监听组件A的事件
Ext.define('MyApp.ParentComponent', {
extend: 'Ext.Container',
items: [
{
xtype: 'componentb'
}
],
initComponent: function() {
this.callParent(arguments);
// 获取组件B的实例
var componentB = this.down('componentb');
// 获取组件A的实例
var componentA = componentB.down('componenta');
// 监听组件A的事件
componentA.on('componentAclick', function() {
console.log('组件A被点击了');
});
}
});
通过这种方式,你可以在ExtJS中使用另一个组件中的组件,并实现组件之间的通信和交互。
领取专属 10元无门槛券
手把手带您无忧上云