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


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 相关文章推荐
ie focus bug 解决方法
Sep 03 Javascript
javascript静态页面传值的三种方法分享
Nov 12 Javascript
基于jQuery实现表单提交验证
Nov 24 Javascript
JavaScript实现简单的数字倒计时
May 15 Javascript
jQuery判断指定id的对象是否存在的方法
May 22 Javascript
JavaScript让Textarea支持tab按键的方法
Jun 26 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
Aug 05 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 Javascript
JS实现拖拽元素时与另一元素碰撞检测
Aug 27 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
Oct 30 Javascript
解决iView Table组件宽度只变大不变小的问题
Nov 13 Javascript
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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
浅谈Node.js 沙箱环境
2018/05/15 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python中使用PDB库调试程序
2015/04/05 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
python如何写个俄罗斯方块
2020/11/06 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
校园十大歌手策划书
2014/02/01 职场文书
公司员工奖惩制度
2015/08/04 职场文书
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python
centos7安装mysql5.7经验记录
2022/05/02 Servers