3.6版本编译资源后,部署www下的资源到报错 bootstrap.min.css 404

wex5 3.6版本编译资源的bug 资源发布后 chrome 开发工具 中的 网络 中出现两个 404 http://ip/www/v-1.2.4.1-zh_CN-/system/components/bootstrap/lib/css/bootstrap.min.css http://ip/www/v-1.2.4.1-zh_CN-/system/components/bootstrap/lib/css/bootstrap-theme.min.css   解决方法: 修改文件/UI2/system/components/bootstrap.min.css.xml <file>bootstrap/lib/css/bootstrap.min.css</file> <file>bootstrap/lib/css/bootstrap-theme.min.css</file> 将这两行代码替换成如下(就是把.min去掉)即可 <file>bootstrap/lib/css/bootstrap.css</file> <file>bootstrap/lib/css/bootstrap-theme.css</file>

单页应用中 多个w页面绑定同一个data组件

一般情况,每个.w中都只绑定 当前页面中的data组件!!如果想在另一个页面同步这个页面data修改后的值,只能通过页面交互,传参,赋值,或者派发事件传参,或者数据保存刷新,的方式实现。 并不建议多个.w绑定同一个data数据源,主要原因: 1.页面耦合度增高,要求必须data先初始化,这个页面才能打开运行。 2.因为是赋值给window对象的!如果命名冲突就会导致所有绑定此data的页面打开报错 如果这两点可以忽略或控制,那么多个页面绑定同一个data组件数据源,对于共享数据来讲是非常方便的! 方法: 1.在第一个打开的页面中,放置data组件(只有第一个页面初始化data,其他页面才能正常打开的,其他页面不能优先访问,切记) 2.在此页面的model构造方法,或者onload方法 中 ,将data组件赋值给window对象 : window.data = this.comp('data'); 3.其他页面中绑定window.data 即可,比如,input 的 bind-ref属性设置: window.data.ref("name") 其他绑定也是类似的写法,window.data.ref('字段') 或 window.data.val('字段')

data必填规则 不生效的解决方案

data 设置 必填规则 ,如果这个值是空的!那么对应的input 就会显示红框,但是默认刷新后,数据库中查询出来的数据,如果这个字段是空的,并不会显示红框 解决方法: 因为行状态是none 所以就不检查了! 可以通过修改状态就行了 var Data = require(“$UI/system/components/justep/data/data”) mydata.setRowState(row, Data.STATE.EDIT); 这样 就可以让规则生效了

windowDialog 设置mapping,根据鉴别列新增或修改的原理

如图,设置根据鉴别列修改或新增, windowDialog的页面最终调用send方法将子页面中映射的data 行返回父页面,父页面最终根据鉴别列进行判断, 如果鉴别列对应的映射列的值,在父页面data列中存在这个值,那么就将父data这行数据 对应的映射全部更新成 子data中 对应的行数据 如果鉴别列对应的映射列的值,在父页面data列中不存在这个值。那么父页面新增一行数据,并把子data 当前行的映射全部赋值给 父data 新增的行

scrollVeiw 组件获取纵向滚动的位置

在scrollView 的 onScrollEnd   onScrollMove事件中 通过一以代码就能知道,scrollView 纵向滚动了多少位置,顶部从0开始,越向下 越是 负向增长 event.source.scroller.y   //随之高度的改变动态修改titleBar的值! Model.prototype.demoListScrollMove = function(event){ var height = -event.source.scroller.y; this.getElementByXid('titleBar1').style.backgroundColor= "rgb(0,0,"+Math.round(height/10)+")"; };

input 绑定日期字段设置最大值和最小值范围

1、将input 组件 min或max的属性设置为:$model.test() 2、在JS文件中添加自定义方法 Model.prototype.test = function() { var today = new Date(); var nextDay = new Date(today); nextDay.setDate(today.getDate() -18250); //计算最小日期为前50年(开始上班日期) 365*50 return nextDay; }; 另外关于日期的计算函数还可以参考:http://doc.wex5.com/js-api-date/

js回调方法如何使用this.comp(‘xid’) 或 this.getElementByXid(‘xid’)

wex5 开发的页面,js的定义语法规则一般都是Model.prototype.方法名,这样的方法相互调用的时候直接使用this.方法()  即可 this  表示的就是model对象! 示例如下: Model.prototype.test= function(){ this.comp('xid') ; this.getElementByXid('xid'); }; 但是在一些特殊的情况下,比如回调方法中,或者js定义格式不是Model.prototype.方法名 ,而是自己定义的js对象,这个时候就不能直接写this.方法() 了 解决方法 1.在回调函数的外层重新定义一个变量,比如var me = this; 在回调函数中使用me.comp() 或me.getElementByXid Model.prototype.test= function(){ var me = this; cordova.getAppVersion.getVersionNumber(function(){ var input = [...]

data不自动刷新,接受参数后才刷新data实现方案

1.data组件设置不自动刷新,就是将data组件的autoLoad 设置为false !并且把关联此data组件的其他组件(比如list组件)的autoLoad也设置为false  ,因为其他组件自动加载也有可能触发data组件刷新数据的! 2.建议在onModelConstructDone  事件中,获取参数 ,执行data.setFilter 和 data.refreshData() 刷新数据,比onload事件中实现,页面效果会好一些,因为这样页面不会初始化以后重新渲染,接收参数的做法参考:http://docs.wex5.com/wex5-ui-question-list-2052/