如何手动触发视图模型项更改通知

时间:2019-05-29 10:31:43

标签: extjs

有一个自定义的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”的值,它必须保持原样。

这可能吗?

1 个答案:

答案 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...
    }
}