微信小程序 动态绑定数据及动态事件处理


Posted in Javascript onMarch 14, 2017

微信小程序 动态绑定数据及动态事件处理

关键核心代码

<image class="midimage" data-Type="{{item.Type}}" data-BillCode="{{item.BillCode}}" data-src="{{item.imgurl}}"
 src="{{item.imgurl}}" mode="scaleToFill" bindtap="addtaskimg" bindlongtap="imglongtap" ></image>
var objurl= JSON.parse(res.data);
        //重置图片参数
        var temppostionlist=that.data.postionlist;
        for (var i=0;i<temppostionlist.length;i++)
        {
          if (temppostionlist[i]["Type"]==e.currentTarget.dataset.type){           
           temppostionlist[i]["imgurl"]=temppaths;
           temppostionlist[i]["serverimgurl"]=objurl.Body.Data;
           break;
          }            
        } 
        that.setData( {  
             postionlist:temppostionlist  
        })

利用image的data-Type,可以在js后台中知道是点击了哪个image,上传图片后再循环得出相等data-type的数据项进行赋值,这样就能动态给相应的标签赋值

addtaskimg 为统一的动态事件

主要代码如下

.wxml

<scroll-view class="center" scroll-y="true">
      <view class="midcenter" wx:for="{{postionlist}}">
      <view class="mid_top" >
          <image class="smallimage" src="../images/my/XXH/line_title.png" mode="aspectFit" ></image>
          <text>{{item.KeyValue}}</text>
      </view>
      <view class="mid_center">
          <text>{{item.Remark}}</text>
      </view>
      <view class="mid_bottom">
          <image class="midimage" data-Type="{{item.Type}}" data-BillCode="{{item.BillCode}}" data-src="{{item.imgurl}}"
          src="{{item.imgurl}}" mode="scaleToFill" bindtap="addtaskimg" bindlongtap="imglongtap" ></image>
      </view>      
      </view>
    </scroll-view>

.js

addtaskimg:function(e){   
  //添加选择图片  
  if (this.data.blongtap)
  {
   //处理如果是长按,则不再执行下面的
   this.setData({
    blongtap:false
   });
   return;
  }
  var that = this;
   wx.chooseImage({
    count:1, //默认1张
    success:function(res){
      //先上传至服务器,再返回路径供保存
      var temppaths=res.tempFilePaths[0];//+".jpg";
      wx.uploadFile({
       url:app.globalData.ghost+"YWTask/PutUploadFile?BillCode="+that.data.detail.BillCode+"&ID="+that.data.id,
       filePath:temppaths,
       name:'image',
       formData:{},
       success:function(res){
        //res.data返回的是一个字符串,需进行转换成objcet,wx不识别eval函数
        console.log(res.Data);
        var objurl= JSON.parse(res.data);
        //重置图片参数
        var temppostionlist=that.data.postionlist;
        for (var i=0;i<temppostionlist.length;i++)
        {
          if (temppostionlist[i]["Type"]==e.currentTarget.dataset.type){           
           temppostionlist[i]["imgurl"]=temppaths;
           temppostionlist[i]["serverimgurl"]=objurl.Body.Data;
           break;
          }            
        } 
        that.setData( {  
             postionlist:temppostionlist  
        })        
       }
      })
    }
   })
 }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js中的escape及unescape函数的php实现代码
Sep 04 Javascript
jQuery的一些特性和用法整理小结
Jan 13 Javascript
基于JQuery.timer插件实现一个计时器
Apr 25 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
Aug 09 Javascript
JQuery中clone方法复制节点
May 18 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
Dec 19 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
webpack css加载和图片加载的方法示例
Sep 11 Javascript
ES10的13个新特性示例(小结)
Sep 23 Javascript
keep-alive保持组件状态的方法
Dec 02 Javascript
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
Mar 14 #Javascript
vuejs响应用户事件(如点击事件)
Mar 14 #Javascript
微信小程序 在线支付功能的实现
Mar 14 #Javascript
JS和canvas实现俄罗斯方块
Mar 14 #Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
Mar 14 #Javascript
canvas实现刮刮卡效果
Mar 14 #Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
Mar 14 #Javascript
You might like
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
优化javascript的执行速度
2010/01/23 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
javascript中的this详解
2014/12/08 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
Vue指令指令大全
2019/02/09 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
Python中的闭包实例详解
2014/08/29 Python
python根据文件大小打log日志
2014/10/09 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python模块如何查看
2020/06/16 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
会计职业生涯规划书
2014/01/13 职场文书
策划总监岗位职责
2014/02/16 职场文书
乔迁之喜主持词
2014/03/27 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
个人德育工作总结
2015/03/05 职场文书
升学宴学生致辞
2015/09/29 职场文书
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL