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


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 相关文章推荐
ExtJs扩展之GroupPropertyGrid代码
Mar 05 Javascript
javascript下string.format函数补充
Aug 24 Javascript
JS常见问题整理(持续更新)
Aug 06 Javascript
js中settimeout方法加参数的使用实例
Feb 27 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
Sep 01 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 Javascript
angularjs自定义过滤器demo示例
Aug 24 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 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
星际争霸任务指南——神族
2020/03/04 星际争霸
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
FF IE兼容性的修改小结
2009/09/02 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
django 微信网页授权登陆的实现
2019/07/30 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
python基于opencv检测程序运行效率
2019/12/28 Python
Django实现celery定时任务过程解析
2020/04/21 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
临床医学大学生求职信
2013/09/28 职场文书
电教室标语
2014/06/20 职场文书
教书育人演讲稿
2014/09/11 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
事业单位考察材料范文
2014/12/25 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
2016国庆促销广告语
2016/01/28 职场文书
java解析XML详解
2021/07/09 Java/Android