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


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 相关文章推荐
Query中click(),bind(),live(),delegate()的区别
Nov 19 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
Oct 26 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
JS只能输入正整数的简单实例
Oct 07 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
Apr 11 Javascript
浅谈Node.js之异步流控制
Oct 25 Javascript
微信小程序时间控件picker view使用详解
Dec 28 Javascript
Angular Excel 导入与导出的实现代码
Apr 17 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 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错误、异常处理机制(补充)
2012/05/07 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
PHP7 windows支持
2021/03/09 PHP
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
vue跨域解决方法
2017/10/15 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python print不能立即打印的解决方式
2020/02/19 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
python定义具名元组实例操作
2021/02/28 Python
求高于平均分的学生学号及成绩
2016/09/01 面试题
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
主治医师岗位职责
2013/12/10 职场文书
股权投资意向书
2014/04/01 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
《将心比心》教学反思
2016/02/23 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python