Extjs MVC Global Store



我有一个使用 extjs 6.2 构建的应用程序。我想使用具有多个网格和图表的商店的单个实例,因为相同的数据需要显示在不同的地方。如果我创建存储的新实例,我会生成新的请求来获取数据。我怎么能在多个地方使用单个实例。

谢谢马吉德

您可以在主视图组件的视图模型中声明您的商店:

stores: {
    mystore: {
        model: 'mymodel',
        autoLoad: true
    }
}

然后,您可以通过绑定访问它的后代组件:

xtype: 'grid',
bind: {
    store: '{mystore}'
}

或者,您可以在应用程序中的任何位置创建存储(在组件需要之前),为其分配一个 storeId。

此存储的唯一标识符。如果存在,此商店将是 在 Ext.data.StoreManager 中注册,使其易于重用 别处。

Ext.create('App.store.MyStore', {storeId: 'myStore'});

然后使用 Ext.getStore 访问它:

Ext.getStore('myStore')

或者甚至只指定组件存储配置的storeId,如果他们接受这一点(网格这样做):

xtype: 'grid',
store: 'myStore'

最新更新