调用history.back() 返回上一个页面的时候想传递参数

调用history.back() 会触发这个页面的onInActive事件, 1.或者跳转到这个页面的时候, http://docs.wex5.com/wex5-ui-question-list-2048/ 传递一个自定义js方法, history.back  会触发当前页面的 onInActive 事件!这个事件中调用前边传过来的方法,这个方法刷新data数据即可!   2.可以在在这个事件中通过派发事件,调用返回的上一个页面中的代码!并给他传递参数! 派发事件可以参考:http://docs.wex5.com/wex5-ui-question-list-2034/

list组件中绑定数据的格式!

原因:经常有开发提到,list显示的数据都是同一行的数据!这种问题往往是bind-ref写成了 data.val('字段'); 这是错误的写法! 解决办法: list 组件中的可视组件bind相关属性绑定data字段的格式应该写成:val('字段') 或 $object.val('字段') 注:val('字段') 的全写是$object.val('字段') ,表示list循环显示时,每一行数据的当前行值!($object可以省略) data.val('字段')表示选中行的当前行值!默认是第一行!

派发事件的用法

原因:在shell跳转的页面中,想在一个页面中调用其他页面中的js方法,比如添加到购物车的操作,这个时候,可以使用派发事件的方式解决!实质上就是在当前页面中调用其他页面的js代码! 解决方法: 参考外卖案例的写法!在/UI2/demo/taobao/main.js 中,onload事件中进行添加事件 // 添加事件 Model.prototype.modelLoad = function(event) { justep.Shell.on("onRestoreContent", this.onRestoreContent, this); justep.Shell.on("onShoppingContent", this.onShoppingContent, this); justep.Shell.on("onHomeContent", this.onHomeContent, this); }; onUnLoad事件中 卸载事件 // 卸载事件 Model.prototype.modelUnLoad = function(event) { justep.Shell.off("onRestoreContent", this.onRestoreContent); justep.Shell.off("onShoppingContent", this.onShoppingContent); justep.Shell.off("onHomeContent", [...]

json数据如何加载到data组件中

1.使用loadData方法!要求json的数据格式必须符合规定的要求!有两种数据格式,分别是 (1)table 类型的json格式数据,如:http://doc.wex5.com/?p=4932    ,这种格式的数据主要是和后台baasServer进行数据交互!简单而完美实现增删改查的操作! 自定义数据交互可以参考/UI2/demo/acc_data/list.w data组件 接管onCustomRefresh 和 onCustomSave事件 实现 (2)简单类型的json格式数据,就如同平台案例仿途牛中定义的那样:/UI2/demo/tuniu/json/cityData.json   是一个数组类型的json结构数据,这种数据往往只是为了页面显示!如果想实现增删改等操作!比较麻烦,后台也需要自己实现! 2.使用newData方法!用这种方法添加数据往往是因为后台传过来的json数据结构不符合我们规定的格式!就需要通过在js代码中处理这个json对象,获取每个字段的值,自己组织成符合格式要求,最后以如下的格式添加进去 var data = this.comp('mainData'); var options = { defaultValues : [ {sName:'a1',sCode:'b1'}, {sName:'a2',sCode:'b2'} ] }; data.newData(options); [...]

关于data组件查找符合条件的数据

1.前台查询,使用data.find方法查找,例如: //查找fName中包含"李"的提一条数据 var rows = this.comp('mainData').find(['fName'],['李'],true,true,true); if(rows.length==0) alert('没有符合条件数据'); //查找fName="李四",fAge=18的数据 var rows = this.comp('mainData').find(['fName','fAge'],['李',18]); if(rows.length==0) alert('没有符合条件数据'); 查找到某行数据后,可以使用data.to(row) 切换到哪一行,当前行显示就可以改变了 2.后端查询,往往使用data.setFilter()方法实现,比如: var data=this.comp('dataXid'); data.setFilter('filter1',"ID='值'"); data.refreshData() 如果是list组件列表页刷新可以这样写: var data=this.comp('dataXid'); var list=this.comp('listXid'); data.setFilter('filter1',"ID='值'"); list.refresh(true);//list组件的refresh方法带上参数true,表示刷新list同时刷新它所绑定的data组件! [...]

input显示为日期组件,设置日期选择的范围

原因:input组件显示为日期类型时!想设置只能选择某个时间段以内的日期 解决方法: 3.5版本,input 组件有两个属性: min 和 max 可以选择设置!目前只能选择今天 还可以通过绑定js方法!返回指定日期!比如min或max设置为:$model.test() 然后,js中自定义方法: Model.prototype.test = function() { var date1=new Date(); date1.setDate(5); return date1; };    

自定义ajax获取后台数据并实现分页显示!

1.data组件设置limit属性,表示每次加载几条数据,自己在data组件的onCustomRefresh事件中接管自定义加载数据 ,关于自定义onCustomRefresh 事件的案例可以参考:/UI2/demo/acc_data/list.js 2.后台返回的数据格式如:http://doc.wex5.com/?p=4932  其中sys.count表示总行数!,第一次必须返回这个! 例如:后台java给table对象设置总数代码: table.setTotal(100) 3.或者直接在前端,使用Data.setTotal()设置总条数! 增量加载数据的情况下,当前data中条数小于这个总数时!list下拉或会触发onCustomRefresh并重新请求后台数据!获得下一页! 可参考:http://bbs.wex5.com/forum.php?mod=viewthread&tid=94661   4.如果不是增量加载,loadData方法中指定append为false  时,当data组件offset 的值大于等于data.getTotal() 时,就不会触发加载下一页了!