javascript - 如何查看store是什么类型?

标签 javascript extjs extjs5 extjs6 extjs6-classic

在ExtJS框架中我们可以定义不同类型的商店。比如

Ext.data.BufferedStoreExt.data.ChainedStoreExt.data.Store

商店定义示例:

Ext.define('App.store.Admins', {
    extend: 'Ext.data.ChainedStore',
    ...
    constructor: function(cfg) {
        var me = this;   
        cfg = cfg || {};
        me.callParent([Ext.apply({
        ...
            alias: 'admins',    
            storeId: 'admins',
            source: 'users'
        ...
    }
})

Ext.grid.Panel类的 View 配置中,我们必须设置网格/树绑定(bind)的数据源。

Ext.define('App.view.Grid',{
    extend: 'Ext.grid.Panel',
    ...
    id: 'admins-grid',
    store: 'admins',
    ...
});

在某个 Controller 上,我想获取有关此网格中定义的商店类型的信息。怎么做?

var grid = Ext.getCmp('admins-grid');
var store = grid.getStore();
//what's next?

我找到了解决方案,但这是最好的方法吗?

var isChained = store instanceof Ext.data.ChainedStore;

最佳答案

Instanceof 是简单的 javascript 方式,应该始终有效。

https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/instanceof

<小时/>

如果商店具有源配置并且没有加载方法,那么它很可能是 ChainedStore。

http://docs.sencha.com/extjs/6.0.1/classic/src/ChainedStore.js.html#Ext.data.ChainedStore

如果存储有缓冲配置并且 isBufferedStore ,那么它将是缓冲存储。

http://docs.sencha.com/extjs/6.0.1/classic/src/BufferedStore.js.html#Ext.data.BufferedStore

<小时/>

根据您的用例,我将采用 Thomas 在此描述的相同方式,并将方法添加到您的扩展 chainedStore 中。

关于javascript - 如何查看store是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088595/

相关文章:

javascript - 模糊时触发的输入更改事件

javascript - 为什么 clearInterval 在此代码中不起作用?

extjs - 如何在 Ext.grid.panel 中定义 View

css - Sencha Architect ExtJs 应用程序中的 Icomoon 字形无法正常工作

javascript - 从 ExtJS 5.1 中的方法访问 Singleton 值

javascript - 如果输入的变量不同则显示一条消息

javascript - 谷歌 Material 图表 : Stop Tooltip Rounding

model-view-controller - 动态管理 Ext.app.Application.controllers

javascript - extjs:如何用树节点的直接子节点填充组合框?

javascript - ExtJS5 - 图表极坐标 itemclick