获取iframe 中 当前光标位置
解决方案,参考代码! var ifEdit = this.getElementByXid("ifEdit").contentWindow; //编辑模式 ifEdit.document.designMode = "on"; [...]
解决方案,参考代码! var ifEdit = this.getElementByXid("ifEdit").contentWindow; //编辑模式 ifEdit.document.designMode = "on"; [...]
原因:有些情况下,需要把当前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) [...]
在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是为了保证开发者可以在任何节点上进行事件绑定;(这个点没有想到什么情况需要阻止默认行为)
原因:比如在data组件中循环查询符合条件的数据!查找到后,没必要再次循环后面的数据了!就可以选择直接结束循环 解决办法:代码如下 this.comp('mainData').each(function(param){ param.cancel = true;//设置忽略遍历! });
原因: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 [...]
原因:打开某个页面的时候,需要接管一个事件,处理一些逻辑,比如写刷新data组件的代码! 解决办法:model组件上提供的两个事件可以处理,分别是onLoad 和 onActive onLoad事件是页面第一次打开的时候触发的!表示页面加载完执行的事件! onActive事件是页面已经打开了!第二次或以两次以上页面激活显示的时候触发! onLoad 和 onActive 是互斥的!每次只能触发其中的一个事件! 如果页面执行了this.close()等关闭页面的操作!那么下次打开还是只触发onLoad事件 旧版本可能存在onActive 第一次也触发的情况!后来新3.4以上的新版本都是第二次显示触发!
progress 组件案例参考:/UI2/system/components/bootstrap/progress/demo/bsProgress.w 很多人不知道如何修改这个进度条的值!目前只提供了一种方式 例如:this.comp('progress1').set('valuenow',70)
list组件中点击事件中获取当前行对象的方法是:event.bindingContext.$object 获取这行数据的某个列的值可以是event.bindingContext.$object.val('fName'); 修改当前行某个列的值,可以是event.bindingContext.$object.val('fName','张三'); 注意:list组件中class属性为 x-list-template 的标签 下面的子标签 才是 list循环显示的部分,点击事件必须在class= x-list-template 的子节点中设置!否则无法点击事件得到当前行对象
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') =='张三'; } 。。。。 [...]