有一个自定义的ExtJS组件,其控制器,视图和模型都在各自的类中。视图模型看起来像这样
Ext.define( 'SomeEditorViewModel', {
extend : 'Ext.app.ViewModel',
alias : 'someeditor',
data : {
quote : 10,
bookmark : 20,
group : 300,
validity : Ext.Date.today(),
equipment : []
},
formulas : {
// etc.
}
在控制器中,有多个“更改时”订阅链接到特定的“数据”对象。除此之外,还有嵌套的自定义组件(此处未列出),它们也订阅了拥有组件发出的更改通知。
有时候,我需要触发所有说“ group”值的处理程序,以使所有订阅都执行而无需实际更改“ group”的值,它必须保持原样。
这可能吗?
答案 0 :(得分:0)
您可以触发自己的自定义“刷新”事件:
Ext.GlobalEvents.fireEvent('groupRefresh');
在您的组件控制器中添加以下内容:
Ext.define('Frontend.view.main.CustomComponent',
{
extend: 'Ext.app.ViewController',
listen: {
global: {
groupRefresh: 'onGroupRefresh',
}
}
onGroupRefresh: function() {
//call multiple handlers, update components, etc...
}
}