Extjs中store的load监听的回调函数
在ExtJS中的API中对store的load监听有这样的一段描述,如下:
load( Store this, Ext.data.Record records, Object options )
当一笔新的Record加载完毕后触发。Fires after a new set of Records has been loaded
易做图会传入以下的参数:
this Store
records Ext.data.Record
加载好的Record(Ext.data.Record[])。The Records that were loaded
options Object
所指定的laoding操作。The loading options that were specified
对于这三个参数:sto,records和options,用到的最多的sto,后面两个很少用到。在今天开发的时候,遇到了一些问题,正是这几个参数帮了我的忙。对于这三个参数,我找了一下资料,贴出来:
写道
API中load事件回调的签名 function( Store this, Ext.data.Record[] records, Object options )
load事件在加载数据后出发, 比如autoLoad: true, 调用load方法, laodData方法, 调用add方法是不会触发的
this : Store, 触发事件的store本身的引用, 在定义事件时没有定义scope的话, this参数与函数中的this指针等价. 在这边使用this作为参数名称比较容易混淆, 函数参数与函数内部的this指针是完全无关的. 应避免使用this作为参数名称. 一般定义回调时这样 function(_store, _records, _ops), 添加_标示内部变量, JavaScript变量作用域非常容易引起混乱, 命名规范非常重要
records : Ext.data.Record[]
The Records that were loaded
大部分情况下等价于store的所有数据, 有一种特殊情况, 调用loadData方法指定第2个参数append为true时, 标示保留原有数据, 那records仅仅是本次load添加的数据
options : Object
The loading options that were specified (see load for details)
调用load方法时提供的参数对象的引用. 即load事件若是由调用load方法触发, 则options参数即是调用load方法的参数, 比如通常分页都会有参数: store.load({params: {start: 0, limit: 50}}); 则options={params: {start: 0, limit: 50}}
其中对我有用的是options这个参数,用用处在如下代码中:
Java代码:
store_loadByIns(isaccStore, {ip: ips[j], dbid: dbids[j]}, "load", function (sto, a, b) {
// alert(a.length);
if (sto.getCount() >= 0) {
unAccessable.push(b.params.dbid);
}
})
其中b就是这个options,只不过是名字不同而已。store_loadByIns是公司类库里的一个方法,这个方法的第一个参数一个store实例,第二个参数是 需要传的参数列表,以json形式。第三个是要增加的监听的名字,第四个就是回调函数。如果想要在load之后使用传入的哪个参数,就得使用options这个参数了,就是上面代码中的b,b.params.dbid就是加载这个store时候用到的那个dbid。
补充:web前端 , JavaScript ,