extjs中组件监听器里面的回调函数说明

来源:http://www.sh-fengwen.com 作者:瘦身美容 人气:113 发布时间:2019-09-02
摘要:最近在看项目源码的时候发现了如下代码,其中_searchSupplierStore是JsonStore对象 _searchSupplierStore.on('beforeload',function(thiz,options){ thiz.baseParams["cusCode"]="%"+Ext.getCmp('id_cusCodetext').getValue()+"%"; t

最近在看项目源码的时候发现了如下代码,其中_searchSupplierStore是JsonStore对象

_searchSupplierStore.on('beforeload',function(thiz,options){
thiz.baseParams["cusCode"]="%"+Ext.getCmp('id_cusCodetext').getValue()+"%";
thiz.baseParams["cusType"]=Ext.getCmp('id_cusTypetext').getValue();
thiz.baseParams["addr"]= "%"+Ext.getCmp('id_addrtext').getValue()+"%"
});

看到这里,其中的function(thiz,options)百思不得其解,thiz,和options是什么呢,各种search项目代码,发现只有如此写法,没有相关说明。

经过查询以及与别人探讨,最后终于明白这玩意是什么东西了。

JsonStore的on函数里面有监听器函数handler,具体写handler的时候要根据store所触发的事件去实现。比如beforeload事件,store的beforeload事件传递两个参数,所以handler的实现里面也会有两个参数,而handler的实现函数里面的参数是形参,所以名字随便取,并且因为JavaScript是弱类型语言在声明变量时 不需要注明变量类型,所以形参会出现只有乱七八糟的标志符的样子(例如function(thiz,options)),不像编译语言的函数参数还要声明类型。
on( String eventName, Function handler, [Object scope], [Object options] )

beforeload : ( Store this, Object options )
this : Store
options : Object
The loading options that were specified (see load for details)这里面有个链接,发现就是store的config options

总结一下,也许总的原因还是自己没有从事件发生与处理机制去思考,去查找吧。一般都是事件回调函数绑定在某个对象上(即监听器里面的回调函数),该对象的具体事件发生事,会调用回回调函数,同时也回把事件发生事的一些“现场”(以参数形式)传递给回调函数。在extjs中这个发生事件的现场要去对象的事件函数里面查询,这样才能在具体回调函数中写正确对应形参。

java awt中的事件机制是传递一个ActionEvent对象将现场传递。

总结是一种态度,更是一种进步

_searchSupplierStore.on('beforeload',function(thiz,options){ thiz.baseParams["...

本文由美高梅游戏平台网站发布于瘦身美容,转载请注明出处:extjs中组件监听器里面的回调函数说明

关键词:

上一篇:用js模拟struts2的多action调用示例

下一篇:没有了

最火资讯