编辑规则绑定自定义函数,传递当前行,计算返回值

data组件右键,可以编辑规则!所有的规则,既可以写死字符串,也可以通过绑定一个自定义函数!进行复杂计算获取结果! 比如比较复杂的计算规则: 绑定js的写法是: $model.getValue($row) js中定义方法: Model.prototype.getValue= function(row) { //debugger;根据当前行的值进行一些计算,返回结果 var value = row.val('字段1') + row.val('字段2'); return value; }; 其他规则的做法也是一样的!通过绑定js自定义函数!就能进行跟复杂的计算了!不过必填,只读,约束规则都是return boolean值!只有计算规则返回字段对应类型的值! 提示信息不支持绑定函数!

data组件新增数据设置默认值

1. data组件右键,编辑规则,设置计算规则,指定默认值,如果计算复杂,可以绑定自定义函数实现 http://docs.wex5.com/wex5-ui-question-list-2178/ 2.新增前事件中设置某些字段的默认值,案例如下: <pre> Model.prototype.orderDataBeforeNew = function(event){ var defaultValues = [{ 'fID':'123', 'fContent':'测试' }] event.option.defaultValues = defaultValues; }; 3.新增后事件中,获取当前行,使用data.setValue('fID','123') 或者 row.val('fID','123') 进行赋值操作!

长按事件中重复执行代码,变量递增

接管touchStart touchEnd touchStart 中开始 调用setInterval 循环执行递增 touchEnd 清除递增! var Model = function(){ this.callParent(); this.test = justep.Bind.observable(0); }; Model.prototype.button1Touchstart = function(event){ var me = this; this.interval = setInterval(function(){ //开启定时器 me.test.set(me.test.get()+ 1 ); },1000); }; Model.prototype.button1Touchend [...]

data组件接管onCustom 事件调用BaasServer 实现查询保存

参考案例:/UI2/demo/acc_data/list.w data组件接管onCustomRefresh事件,就是自己接管数据的刷新 Model.prototype.accountDataCustomRefresh = function(event){ var data = event.source; Baas.sendRequest({ "url" : "/justep/account", "action" : "queryAccount", "params" : { "columns" : Baas.getDataColumns(data), "limit" : event.limit, "offset" : event.offset }, "success" : function(resultData) { var [...]

新增多行数据,id列数据库递增怎么办

1.一般的思路是,data组件 新增行的时候,去后端数据库查询,获取最大的id值!然后递增,新增行使用这个id 但是:如果多个用户同时新增数据!这个id值就不能唯一了! 2.如果保存的时候,再去后端查询数据,这样就保证了id数据的唯一性 但是:data组件要求,新增多行数据显示的时候,必须有id列的!如果多行数据没有id列!那么就不能正常显示,无法选中当前行(无法确定唯一的行) 解决方法: data新增的时候fID随便赋值就可以了!只要不冲突就行,真正保存的时候,设置fID不保存,让它数据库自增即可! 查询的时候再把fID查出来就可以了! 除非你新增的时候!其他关联的数据库表也存储了这个值!!那么就必须保证数据库新增时fID 是一致的! 否则直接赋值一个假值就行了! 保存设置不包含它 http://docs.wex5.com/wex5-server-question-list-2020

showPage 页面第一次打开自动退出,第二次打开就正常了!

门户页面制作的时候!index.w中 存在windowContainer组件,静态指定了main.w 主页! 打开页面的时候,显示主页没问题!可是第一次跳转其他页的时候justep.Shell.showPage('页面')   会闪退回主页!第二次打开就正常了! 解决方法: 原因是index.js中没有写justep.Shell.showPage('main') 如果门户页使用静态的windowContainer组件指定了主页的话!必须在js(可以是onLoad事件中)中调用justep.Shell.showPage('main') 跳转到主页,才可以的!

list组件渲染完毕后执行js代码!

list组件只有一个事件是onAfterRender  ,list组件每行渲染完毕都会触发一次这个事件的! 如果想实现的逻辑是整个list渲染完毕后,再去执行,怎么办呢? 解决方法: 在onAfterRender  中 写一个判断条件 判断list中生成的dom节点 数量(比如li标签的个数)和data.coutn() 是否相等?? 如果相等,就说明list渲染完毕了! onAfterRender   事件中判断代码格式大约是: if($("li").length ==  data.coutn()){ //执行list渲染完成后的代码逻辑 }

data组件设置各种规则后,通过js代码判断规则是否符合条件

1.js代码进行提示 data.isValid() 是判断data组件的规则是否都满条件 data.getInvalidInfo() 表示那些不符合规则的提示信息, var data = this.comp('data'); var isValid = data.isValid(); if(!isValid){ throw new Error (data.getInvalidInfo()); } 2.页面动态绑定提示信息 有些需求的页面是要 实时显示输入数据是否符合规则的 可以在页面上添加一个提示信息的标签 标签 bind-validationMessage 属性 绑定某个data组件字段的值! 当这个值输入不符合规则的时候! 设置绑定的标签就会动态显示,不符合规则的提示信息 , 3.案例:点击下载rule 查询出来的数据必须编辑后才生效的! 或者是新增的数据可以直接生效!data组件行状态如果是none,则规则不生效! [...]

data组件异步 保存和刷新 如何执行回调方法

保存和刷新的原理是一样的!这里以刷新为例 自己接管 onCustomRefresh   调用刷新 数据 方法, 可以是ajax请求后台,也可以是Baas.sendRequest 如果是异步请求async: true, 那么,默认情况下,data组件的 onAfterRefresh、onRefreshError事件或者refreshData 方法的  onSuccess、onError回调 都没办法触发的! 解决方法: 自己接管doRefreshAfter 事件 Model.prototype.masterDataCustomRefresh = function(event){ var data = event.source; //手动进行异步刷新时,执行成功后调用doRefreshAfter。 $.ajax({ type: "GET", url: require.toUrl(url), dataType: 'json', async: true, success: [...]