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


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 ul标签下拉菜单演示代码
Dec 11 Javascript
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
js鼠标滑过图片震动特效的方法
Feb 17 Javascript
js动态生成Html元素实现Post操作(createElement)
Sep 14 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
Dec 20 Javascript
Vue.js实现实例搜索应用功能详细代码
Aug 24 Javascript
如何在vue中使用ts的示例代码
Feb 28 Javascript
如何为vue的项目添加单元测试
Dec 19 Javascript
[jQuery] 事件和动画详解
Mar 05 jQuery
vue中使用vue-pdf的方法详解
Sep 05 Javascript
利用node.js开发cli的完整步骤
Dec 29 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微框架Dispatch简介
2014/06/12 PHP
PHP return语句的另一个作用
2014/07/30 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
学党史心得体会
2014/09/05 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
交通事故被告答辩状
2015/05/22 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis
Python使用永中文档转换服务
2022/05/06 Python
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python