extjs之model,store,reader, proxy

Ext.define('Business.store.businessRequest.BrUnitRuleStore',{
extend:'Ext.data.Store',
alias : 'widget.brUnitRuleStore',
pageSize:BusinessCommon.PAGE_NUM,
pageNum:1,
// code:'',
model:'Business.model.businessRequest.BrUnitRuleModel',
autoLoad:false,
proxy: {
type: 'ajax',
url : 'rule/queryAllRules',
actionMethods : {
read : 'POST'
},
reader: {
type: 'json',
root: 'resultList',
totalProperty:'totalCount'
}
},
listeners : {
beforeload : {
fn : function(store, options) {
// 设置查询参数
// 通过自己的编号
// var index = store.storeId.split('_')[1];
// 获得grid对象
// var grid = Ext.getCmp('govInfoModuleGrid_'+index);
// 获得属性
// var id = Ext.getCmp('govInfoModuleSearchModule_ID-' + index).getValue();
// var name = Ext.getCmp('govInfoModuleSearchModule_Name-' + index).getValue();
// alert(1);
// alert('id:'+module_ID+' name:'+module_Name);
// {params:{module_Id:tab.moduleId,module_Name:rec.get('text')}}
// alert(store.storeId);

// var brUnitId = Ext.getCmp('businessRule_tab').selectBrUnitId;
var brUnitId = Ext.getCmp('brUtinTabPanel_br').selectBrUnitId;
Ext.apply(store.proxy.extraParams, {
'pageNum' : this.pageNum,
'pageSize': this.pageSize,
'unitId':brUnitId
});
}
}
}

});


其中proxy是用来访问服务器端数据的,

reader是用来把 返回来的数据解析成对应的model实例,

pageSize是用来供grid分页用的,

root是返回数据的key,他后面的是用解析成model层对象的数据,

totalProperty是返回数据对应的model的总数,

一般返回的json格式是:{totalCount:3,resultList:[{name:ss,age12},{name:aa,age:13},{name:bb,age14}]}

autoLoad设置成true,会自动加载的你都store,一般不设置成true,

listener:beforeLoad事件是没回加载数据时都会执行的事件

store在load数据时时可以传递参数的

store.load({params:{ids:ids}});

你可能感兴趣的:(extjs之model,store,reader, proxy)