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


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 相关文章推荐
javascript编程起步(第一课)
Jan 10 Javascript
图片自动缩小的js代码,用以防止图片撑破页面
Mar 12 Javascript
jquery.validate使用攻略 第三部
Jul 01 Javascript
利用js实现选项卡的特别效果的实例
Mar 03 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
Nov 21 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
Dec 14 Javascript
Node.js pipe实现源码解析
Aug 12 Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
微信小程序实现漂亮的弹窗效果
May 26 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
Oct 09 Javascript
vue实现点击按钮切换背景颜色的示例代码
Jun 23 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中路径问题的解决方案
2006/10/09 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
树莓派实现移动拍照
2019/06/22 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
化工专业大学生职业生涯规划书
2014/01/14 职场文书
小学班主任寄语大全
2014/04/04 职场文书
自查自纠整改报告
2014/11/06 职场文书
工作失误检讨书范文
2015/01/26 职场文书
56句经典英文座右铭
2019/08/09 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android