Extjs4 之Store使用

store定义

方法一 加载已经有的数据

Ext.define('namespace.DemoStore', {
    extend: 'Ext.data.Store',

    model: 'namespace.DemoModel',

    autoLoad: false,
    data: []
});

方法二 远程加载数据

Ext.define('namespace.DemoStore', {
    extend: 'Ext.data.Store',

    model: 'namespace.DemoModel',
    // 分组
    groupField: 'group',

    autoLoad: false,
    data: []

    // 上传时候携带的参数
    params: {
        para1:'',
        para2:''
    },

    proxy: {
        type: 'ajax',

        headers: { 'Content-Type': 'application/json;charset=UTF-8' },
        url: '请求链接',

        // 设置请求类型
        actionMethods: { read: "POST" },

        reader: {
            type: 'json',
            successProperty: 'status',//值取true或者false
            totalProperty: 'totalcount',
            root: 'data',
            getResponseData: function(response) {
                try {
                    data = Ext.decode(response.responseText);
                    // 根据返回的结果数据处理成model中定义的数据类型结构
                    // do something you want
                    
                    return result;
                } catch (ex) {
                    return this.getError(ex, error, this, response);
                }
            }
        }
    },

    listeners: {
        beforeload: function(store, operation) {
            operation.params = Ext.encode(this.params);
        }
    }
});

store请求数据

方法一:对应于上面store定义的方法一

Ext.Ajax.request({
    url: '请求地址',
    headers: { 'Content-Type': 'application/json;charset=UTF-8' },
    method: 'post',
    scope: this,
    params: Ext.encode(params),// 请求需要携带的参数
    success: function(response, opts) {
        var responseResult = Ext.decode(response.responseText);
        var store = 上述定义的store
        // 中间处理步骤,最终获取到与store中model相匹配的数据格式
        // do something you want
        // 调用如下方法接在数据,第一个参数就是要加载的数据,第二个参数如果是ture则会保留以前的数据,为false则不会保留
        store.getStore().loadData(result, false);
    },
    failure: function() {
        
    },
    callback: function() {
        
    }
});

方法二:对应于上面的store定义的方法二

var store = 上述定义的store
store.load(function(records, operation, success) {
    if (success) {// 判断是否成功
        // do something you want
    }
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • CentOS 7.4 Everything ISO http://isoredirect.centos.org/c...
    MrWang_CHN阅读 2,976评论 0 0
  • 日常生活中,你有没有遇到过这样的情况? 你给别人发了个消息,但是迟迟等不到对方的回应,然后就没有然后了。 工作的时...
    小自在的园地阅读 2,656评论 0 3
  • 不开心很久了,久到自己都已经麻木了。 好像生了病,病的很厉害。像是一个走了很久很久的流浪汉,风餐露宿,找不到何处安...
    lottie123阅读 1,373评论 0 0
  • 早上和一个82年的女老板聊天,开始没有找到很好的话题聊天,后来主题转到英语学习和瑜伽练习上。她说自己断断续续练习瑜...
    W南茜阅读 3,873评论 0 0

友情链接更多精彩内容