data组件复制整行数据到另一个data中

原因:有些情况下,需要把当前data组件中的数据缓存在其他data组件中!当前data做清理或刷新!或者是选择出某些行的数据放在另一个data组件中使用!等等的需求! 解决方法: 如同下面代码!把data1中的数据循环添加在另一个data1baas 组件中! var data1 = this.comp("data1"); var data1baas = this.comp("data1baas"); data1.each(function(p) {                         var row = data1baas.add();                        row.assign(p.row) [...]

根据xid获取 X5 组件对象 和HTML标签dom对象

在WeX5 中,一般通过js获取对象,都是使用xid来获取的!是否是wex5组件的识别,主要看源码中是否有component属性!如果有,那就是,否则就是html5标签 x5组件获取对象的方法是 this.comp('组件XId'),然后参考API文档,看看它所提供的操作方法都有哪些! html元素,通过this.getElementByXid('节点XId')  ,这样获取的对象和js的document.getElementByXid('xid')获取的js对象是一样的!可以使用jQuery进行封装!方法和标准js操作dom对象没有区别!可以上网查资料!

关于阻止事件冒泡的理解

注意,只能是在bind-click事件中处理!在onClick事件中无法阻止冒泡的! 事件中 event.stopPropagation(); //阻止了事件冒泡,但不会阻击默认行为 event.preventDefault(); // 不阻击事件冒泡,但阻击默认行为 return false; //阻止了事件冒泡,也阻止了默认行为 return true和没有return是一个逻辑事件继续,即不阻击事件冒泡也不会阻击默认行为 这里return true是为了保证开发者可以在任何节点上进行事件绑定;(这个点没有想到什么情况需要阻止默认行为)

attachmentSimple 组件获取图片url地址,用于img标签显示

原因:attachmentSimple 组件可以上传图片,但是没有图片预览的能力!如果想把上传的图片,使用img标签显示出来!就需要自己写代码实现! 解决办法: 主要代码 // 图片路径转换 Model.prototype.getImageUrl = function(value, ownerID) { if (value) { try { var jsonList = eval("(" + value+ ")"); if (jsonList instanceof Array) { var realFileName = jsonList[0]["realFileName"]; var storeFileName [...]

关于onLoad 和 onActive事件的理解

原因:打开某个页面的时候,需要接管一个事件,处理一些逻辑,比如写刷新data组件的代码! 解决办法:model组件上提供的两个事件可以处理,分别是onLoad 和 onActive onLoad事件是页面第一次打开的时候触发的!表示页面加载完执行的事件! onActive事件是页面已经打开了!第二次或以两次以上页面激活显示的时候触发! onLoad 和 onActive 是互斥的!每次只能触发其中的一个事件! 如果页面执行了this.close()等关闭页面的操作!那么下次打开还是只触发onLoad事件 旧版本可能存在onActive 第一次也触发的情况!后来新3.4以上的新版本都是第二次显示触发!

list组件点击事件中获取当前行

list组件中点击事件中获取当前行对象的方法是:event.bindingContext.$object 获取这行数据的某个列的值可以是event.bindingContext.$object.val('fName'); 修改当前行某个列的值,可以是event.bindingContext.$object.val('fName','张三');   注意:list组件中class属性为  x-list-template 的标签 下面的子标签 才是 list循环显示的部分,点击事件必须在class= x-list-template 的子节点中设置!否则无法点击事件得到当前行对象  

list组件动态设置filter

1.list组件在filter属性中,判断条件绑定ko对象, var Model = function(){ this.callParent(); this.type=justep.Bind.observable('全部');//建立可观察对象,用于数据感知,分三个状态(全部,迟到,早退); }; list的filter属性使用表达式:'全部'===$model.type.get()|| $row.val(状态列)===$model.type.get() 迟到按钮的代码:this.type.set('迟到'); 早退按钮的代码:this.type.set('早退'); 这样就可以了; 2.需求,比如点一个按钮,根据年龄过滤,点击另一个按钮,根据名字过滤,等条件。显示list中的数据!list组件filter绑定一个js方法设置动态过滤条件,比如:$model.testFilterType($row) 初始化定义ko对象:this.type= justep.Bind.observable('1'); 这个时候,js改成这样 Model.prototype.testFilterType = function(row){ if(this.type.get() == '1'){ return row.val('fAge')>20; } esle if(this.type.get() == '2'){ return row.val('fName') =='张三'; } 。。。。 [...]