【1】组件获取方式 : 第一种: refs : { wbList : 'waybillList ' }, 在 controller中定义 wbList,其中 waybillList为列表的xtype,获取组件方式如下: var me = this, wbList = me .getWbList(); 第二种: var me = this , packList = me .getPackList(); var packSet = Ext . create ( 'Ext.form.FieldSet' , { title : title , itemId : 'add' , items : [ { xtype : 'list' , } ] }); packList . add ([ packSet ]); 定义 form组件 , 获取组件方式如下: var pack_item = packList . getComponent ( ' add ' ); 第三种: list 为某组件下的列表的xtype,获取组件方式如下:(是通过xtype获取的) var goods_list = pack_item . down ( 'list' ); 再如获取form下某组件(是通过itemId获取的) var serviceItem = myForm . down ( '#serviceItem' ); 第四种: 通过全局检索(不建议该用法),其中insurance为组件的itemId属性 var insuranceCon = Ext .ComponentQuery. query ( "#insurance" )[ 0 ]; 【2】store获取 方式 : var waybillStore = Ext . getStore ( 'Waybill' ); waybillStore . load ({ callback : function (records, operation, success) { var addWaybill = wbList . down ( '#addWaybill' ); if (! Ext . isEmpty (records)){ addWaybill .setHidden( true ); } else { addWaybill .setHidden( false ); } } }); 【3】页面回退 : history . back (); 【4】页面跳转 : me . redirectTo ( 'view/account_Login' );(该方法为封装方法) redirectTo : function (place, data) { var me = this ; me . hideMenus (); Ext .leo. CONTEXT . viewData = data; return this . callSuper ([place]); }, 【5】列表页长按短按问题 : 1.列表单击事件: onWaybillListTap : function (list, index, target, record, e, eOpts) { if (!list. isTapHold ) { // 有长按标识,则不执行下面的代码 console . log ( 'itemtap' ); // 这里的代码才是点击事件 } else { delete list. isTapHold ; // 否则清除长按标识 } }, 2.列表长按事件 : onHoldWaybillListTap: function (list, index, target, record, e, eOpts) { list. isTapHold = true ; //增加标识:是否长按操作 } 【6】按钮的定义及弹层 : var items = [{ text : ' 添加 ' , itemId:"addWaybillList", xtype:'button', ui : 'action', scope:this, cls:'cls cls2', handler: function(){ this.actions.hide(); this.actions.destroy(); this.actions = null; me.redirectTo('view/member_WbEdit/opt-add_wh-'+record.data.wh_id); } }]; 弹层新增一个viewport: if ( this . actions ) { this.actions.destroy(); this . actions = null ; } ..........................................【弹层内容代码】items定义后加元素可通过 items . push ( edit )实现 if(!this.actions){ this.actions = Ext.create('Ext.ActionSheet',{ items:items }); } Ext . Viewport . add ( this . actions ); this . actions . show (); 【7】页面加载或提交等待提示:
例:列表页进入详情页,或详情页提交表单 如 列表页进入详情页,在获取详情页数据时加入以下代码: Ext . Viewport .setMasked({ xtype : 'loadmask' , message : ' 努力加载中 ...' }); 在aj请求成功并渲染完列面数据后关闭,加入以下代码: Ext . Viewport .setMasked( false ); 注意:1.在哪里添加加载中的提示就对哪个组件进行加载(wbForm)或者采用新viewport( Ext . Viewport ) 2.该操作的aj请求方式应为 true,即 异步请求
【8】接口对空值处理问题及节省网络开销双保险 : var store = Ext . getStore ( 'Waybill' ); var extraParams = store . getParams (); store . currentPage = 1 ; extraParams . condition = condition ; extraParams = Ext .leo. filterEmpty ( extraParams ); store .setParams( extraParams ); store . load ();