计算规则绑定js代码中执行异步代码,给data字段赋值!
一般情况,计算规则中通过 return 值 的方式给当前字段赋值的! 特殊情况,比如js计算结果中有异步请求的时候!!可以通过传参$row 在异步成功回调中 通过row.val('字段','值') 这样的方式进行赋值!
一般情况,计算规则中通过 return 值 的方式给当前字段赋值的! 特殊情况,比如js计算结果中有异步请求的时候!!可以通过传参$row 在异步成功回调中 通过row.val('字段','值') 这样的方式进行赋值!
加属性 onpropertychange="if(this.scrollHeight>70)this.style.height=(this.scrollHeight+'px')" oninput="this.style.height='70px';if(this.scrollHeight>70)this.style.height=(this.scrollHeight+'px');"
使用场景:很多情况下,都需要在当前页面跳转到另一个页面的时候,需要先把另一个页面显示的状态准备好,这样再切换过去的时候,页面不会变化和渲染,用户体验比较好!!比如切换到另一个页面时,指定contents切换到某个页面!!如果在跳转后再切换contents ,就会看到过渡效果!等,这种写场景,就需要先在当前页切换另一个页面的contents,然后再跳转过去!!! 解决方法: 场景1. 页面A使用shell.showPage 跳转到页面B,关闭页面B的时候,回到页面A,切换contents到某个页面片段 !!这种方式,可以参考:http://docs.wex5.com/wex5-ui-question-list-2048/ 页面A传递一个js函数到页面B,页面B关闭的时候先执行这个回调方法!在js方法中可以传参,指定切换到某个contents页面!! 场景2.页面A 使用windowDialog组件弹出页面B,关闭页面B的时候,回到页面A,并切换contents到某个页面片段!!可以参考:http://docs.wex5.com/wex5-ui-question-list-2119 子页面直接使用this.getParent() 获取父页面的model对象!然后再获取contents组件对象切换即可: this.getParent().comp('conentsXid').to('contentXid') 场景3.如果页面A使用shell.showPage 跳转到页面B,并且指定切换B页面中的contents组件,显示某个页面片段 !可以参考http://docs.wex5.com/wex5-ui-question-list-2034/ 使用事件派发的方式,调用另一个不相关页面的js方法!(注意:B页面必须是加载过才可以的!如果是第一次打开是没法调用它的方法的) 场景4. A页面使用windowDialog弹出B页面,B 页面中先切换contents ,然后再弹出打开此页面,这个时候,contents会有动画的切换效果,需要先取消动画然后再打开页面 var contents = this.comp('windowDialog1').getInnerModel().comp("pages"); contents.set({slidable:false}); contents.to('content-3');
场景: list组件中,每一行 需要显示多个radio 或者 checkBox,并且每一行显示选择的类型都不一样!radio 或checkBox 的选择数据源是存放另一个data组件中!! 思路:正常的想法是每一行放一个radioGroup 组件,并且每个radioGroup可以设置过滤条件!用于显示 data中不同的 数据!,参考:http://docs.wex5.com/bex5-ui-question-list-10202/ 可以参考select组件是拥有的这个能力的!可以参考:http://doc.wex5.com/comps-select/#008 第三个案例 (所以,如果是list中使用radio 组件显示不同数据的话,也可以换成select组件来选择不同数据源的数据) 以下方法是之前的思路,现在可以忽略了,有兴趣的可以看看, radioGroup 的方式简单明了,下面是不适用radioGroup ,完全list嵌套显示单个的radio 场景1:如果list中每一行数据显示的radio 或 checkBox 类型都不一样,(确保是不重复的类型) 解决方法: 两个数据源 需要使用list嵌套 加单个的 radio 或 checkBox 来显示选择样式! (list嵌套参考:http://docs.wex5.com/wex5-ui-question-list-2005/) 里层list设计!可以radio 绑定一个里层data的字段,lable绑定一个显示的字段! 外层data组件需要赋值的那个字段!通过计算规则,绑定一个自定义js方法!在这个js方法中,根据当前行type类型进行查询过滤从表的 数据!然后循环判断 [...]
在当前页的attachmentSimple 组件下!class属性分别是 x-attachment-item x-item-upload x-attachment-item x-item-remove 的div 表示上传和下载按钮! 控制这两个div的显示隐藏 或者删除这个div标签 即可!
event.source指的就是data组件的js对象 event.source.getColumnIDs(),这个可以获取列名 event.source.defCols 列定义
场景:比如像,手机翻书,翻到下一页,考试答题,翻到下一题, 总之:原理就是data组件切换到下一行显示数据,data.next() ,但是又想有contents组件页面切换的效果! 解决方法: contents中添加两个content,并且content页面的布局是一模一样的!都是正常的可视组件,绑定data组件字段,显示当前行数据。 比如点击事件中调用 contents.prev() 或者 contents.next(); 在contents组件的onActiveChange 事件中,判断 event.type 是向前翻页还是向后翻页,("prev"是向前, "next"是向后) 从而决定 调用data.prev() 还是 data.next()方法! 这样就可以实现切换页面的同时有切换数据! 看上去的效果就是发切换到上一页 或者 下一页! 并且实现起来很简单! 注意:(contents手动滑动翻页,无法区分是prev和next,可以自己接管touch事件,判断滑动的方向,实现代码逻辑http://docs.wex5.com/wex5-app-question-list-2071/)
1.在index.w 定义shellImp 的js代码中,初始化完毕后执行代码: justep.Shell.setIsSinglePage(true) 或者 this.shellImpl.isSinglePage = true; 2.或者直接修改源码:/UI2/system/lib/portal/shellImpl.js 将这行代码 this.isSinglePage = false; 修改为 this.isSinglePage = true; 然后重新合并资源\tools\dist\dist.bat 即可生效
1.比如button组件放在list中某个div上!在div的bind-if属性上判断这个字段的值是否符合条件, 比如:val('字段') ==1 那么这个div里面的dom节点(button 组件)只有在符合条件的时候才会生成!否则运行时就没有这个dom节点的!这也是动态生成啊!其他组件也是类似的方法控制组件是否需要动态生成! 这中思路还可以实现,在list每一行中放置多种显示模板,每种显示风格都不一样,通过bind-if绑定字段来控制哪种风格的模板显示,就可以做到list中每行显示的风格都不一样! 2.如果字段变化!不需要页面立即生效!而是下一次打开页面的时候才生效的!那么就使用bind-if 如果是立马生效,请使用bind-visible属性可以! 这两个的区别就是,一个是没有生成dom节点!另一个是生成了!但是隐藏了!当字段变化后就可以立马显示! 动手试试就知道了!
因为长按事件会触发点击事件,而点击空白处popOver消失,这样就导致无法长按弹出popOver了! 解决方案 在touchStart中 将popOver 的 dismissible 属性设置为false model.comp("popMenu1").dismissible=false 在touchEnd中 将popOver 的 dismissible 属性设置为true model.comp("popMenu1").dismissible=true