能给出extjs子组件之间通信的例子吗
以下是一个ext.js子组件之间通信的例子:
假设有两个子组件:一个是“表格”组件,另一个是“过滤器”组件。表格组件显示数据列表,过滤器组件允许用户筛选列表中的数据。
当用户在过滤器组件中进行筛选时,需要通知表格组件更新显示的数据。为了实现这一点,可以在过滤器组件中添加以下代码:
Ext.define('MyApp.view.Filter', {
extend: 'Ext.panel.Panel',
alias: 'widget.filter',
// ...
// 在过滤器组件中添加一个事件处理程序
listeners: {
filterChanged: function(value) {
// 通知表格组件更新数据
this.fireEvent('dataChanged', value);
}
},
// ...
});
在表格组件中,也需要添加一个事件处理程序,以便在收到过滤器组件的通知时更新显示的数据:
Ext.define('MyApp.view.Grid', {
extend: 'Ext.grid.Panel',
alias: 'widget.grid',
// ...
// 在表格组件中添加一个事件处理程序
listeners: {
dataChanged: function(value) {
// 更新显示的数据
this.getStore().load({
params: {
filter: value
}
});
}
},
// ...
});
这样,当用户在过滤器组件中进行筛选时,过滤器组件会触发“filterChanged”事件,并将筛选条件作为参数传递给事件处理程序。事件处理程序会触发“dataChanged”事件,并将筛选条件作为参数传递给表格组件。表格组件会在收到通知后更新显示的数据。
原文地址: https://www.cveoy.top/t/topic/LVz 著作权归作者所有。请勿转载和采集!