基于配置文件设置 Extjs bufferedstore 的 pageSize

Setting the pageSize of Extjs bufferedstore based on a config file

我有一个 Extjs 缓冲存储,如下所示:

Ext.define('myStore', {
extend: 'Ext.data.BufferedStore',

requires: [
    'myStoremodel' // model that the store takes in 
],

storeId: 'myTeststore',

model: 'myStoremodel',

remoteSort: true,
buffered: true,
leadingBufferZone: 2,
trailingBufferZone: 2,
pageSize: 10,
proxy: {
    type: 'ajax',
    url: "/fetch/getNameList" // the API which returns data to load,
    timeout: 5 * 60 * 1000,
    reader: {
        rootProperty: 'data.name',
        totalProperty: 'data.recordSize'
    },
    simpleSortMode: true
}
});

我正在寻找 pageSize 变量(根据配置文件中所做的更改更改大小)。如何从外部配置文件中读取值?如何实现?

只是给你一个非常基本但可能的解决方案,你可以创建一个API来获取你的前端默认配置(比如 ExtJs 商店的 pageSize)。

然后在打开您的网络应用程序时,作为第一步,您可以调用该 api 并将结果保存在您喜欢的位置(window 对象、cookie、. ..).

图像具有如下所示的响应对象并将其保存在 window 静态变量中:

window.myFrontEndConfigs = {
    pageSize: 20
};

因此,在您的商店定义中,您可以使用如下内容:

Ext.define('myStore', {
    extend: 'Ext.data.BufferedStore',
    ...
    pageSize: window.myFrontEndConfigs.pageSize
    ...
}

我再说一遍,这是一个漂亮的“Stone-Age”解决方案,但对您的 front/back 端的信息知之甚少甚至为零,这让我的选择很少...

-编辑-

没有什么能阻止您只拥有一个专门包含 return 您的配置的功能的新 js 文件。只需将它添加到您的页面上,然后繁荣、完成、配置加载和可用。只是我喜欢在我的后端进行配置,因为我永远不知道将来是否需要根据用户、组等自行动态设置...

myConfigs.js

function myFrontEndConfigs() {
    return {
        pageSize: 20
    };
}

然后在您的商店中:

Ext.define('myStore', {
    extend: 'Ext.data.BufferedStore',
    ...
    pageSize: myFrontEndConfigs().pageSize
    ...
}