赞
踩
// 加载Store的数据load : function(options) { //1. 自定义的参数 options = Ext.apply({}, options); //2.删除对象中的callback 和 scope属性,并且保存本次查询的参数 this.storeOptions(options); //3. 如果是远程排序,则需要设置(服务器端排序) if(this.sortInfo && this.remoteSort){ var pn = this.paramNames; options.params = Ext.apply({}, options.params); options.params[pn.sort] = this.sortInfo.field; options.params[pn.dir] = this.sortInfo.direction; } try { //4. 发起查询 return this.execute('read', null, options); } catch(e) { this.handleException(e); return false; }}
// 删除对象中的 callback 和 scope 属性storeOptions : function(o){ o = Ext.apply({}, o); delete o.callback; delete o.scope; // 保存本次查询的参数 this.lastOptions = o;}
/** * 执行步奏: * 1. 查询执行的动作是否正确 * 2. 内部参数的整合 * 3. 未知 * 4. 部分数据初始化 * 4.1 是read Action 调用beforeload和添加baseParams * 4.2 其他create,update,destroy动作,未知 * 5. 如果需要,则发起请求 * @param action{Object} 动作类型 * @param rs{Object} 未知 * @param options{Object} 传递的参数 * @return 是否有发起查询{true/false} 如果有发起查询,则是true */ execute : function(action, rs, options, batch) { //1. 判断该请求是否正确 主要有:create,read,update,destroy 这四个动作 if (!Ext.data.Api.isAction(action)) { throw new Ext.data.Api.Error('execute', action); } //2. 整理参数如果options为空则使用params: {} 空参数 options = Ext.applyIf(options||{}, { params: {} }); //3. 未知 if(batch !== undefined){ this.addToBatch(batch); } var doRequest = true; //4. 部分数据初始化 //4.1 是read Action 调用beforeload和添加baseParams //一. 先调用beforeload,同时传递对应的参数 //二. 添加基本参数信息 if (action === 'read') { doRequest = this.fireEvent('beforeload', this, options); Ext.applyIf(options.params, this.baseParams); } else { //4.2 其他create,update,destroy动作,未知 if (this.writer.listful === true && this.restful !== true) { rs = (Ext.isArray(rs)) ? rs : [rs]; } else if (Ext.isArray(rs) && rs.length == 1) { rs = rs.shift(); } if ((doRequest = this.fireEvent('beforewrite', this, action, rs, options)) !== false) { this.writer.apply(options.params, this.baseParams, action, rs); } } // 是否要发起请求 if (doRequest !== false) { //如果是writer,后续补充 if (this.writer && this.proxy.url && !this.proxy.restful && !Ext.data.Api.hasUniqueUrl(this.proxy, action)) { options.params.xaction = action; } // 发起一个Ajax请求 this.proxy.request(Ext.data.Api.actions[action], rs, options.params, this.reader, this.createCallback(action, rs, batch), this, options); } return doRequest; }
// reload就是使用上次传递的参数重新调用reload但是不包括baseParamsreload : function(options){ this.load(Ext.applyIf(options||{}, this.lastOptions));}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。