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


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 相关文章推荐
jQuery的$.proxy()应用示例介绍
Apr 03 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
Oct 16 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
jQuery过滤特殊字符及JS字符串转为数字
May 26 Javascript
微信QQ的二维码登录原理js代码解析
Jun 23 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
Aug 11 Javascript
JavaScript实现url参数转成json形式
Sep 25 Javascript
jquery把int类型转换成字符串类型的方法
Oct 07 Javascript
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
Sep 25 Javascript
jQuery实现网页拼图游戏
Apr 22 jQuery
使用Cargo工具高效创建Rust项目
Aug 14 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
关于PHP文件的自动运行方法分析
2016/05/13 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
XENON基于JSON变种
2010/07/27 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
Python中文编码那些事
2014/06/25 Python
django框架如何集成celery进行开发
2017/05/24 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python实现QQ批量登录功能
2019/06/19 Python
python字典的常用方法总结
2019/07/31 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
一套VC试题
2015/01/23 面试题
电子商务专业学生职业生涯规划
2014/03/07 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js