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


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字符串拼接的效率问题
Dec 25 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
jquery1.10给新增元素绑定事件的方法
Mar 06 Javascript
Jquery Ajax方法传值到action的方法
May 11 Javascript
用javascript对一个json数组深度赋值示例
Jul 27 Javascript
Javascript中设置默认参数值示例
Sep 11 Javascript
js判断滚动条是否已到页面最底部或顶部实例
Nov 20 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
Aug 23 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
Aug 31 Javascript
js取小数点后两位四种方法
Jan 18 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 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
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
JQuery 入门实例1
2009/06/25 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
任课老师推荐信范文
2013/11/24 职场文书
中专生的个人自我评价
2013/12/11 职场文书
校园报刊亭创业计划书
2014/01/02 职场文书
感恩节活动方案
2014/01/27 职场文书
献爱心倡议书
2014/04/14 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
综合素质评价自我评价
2015/03/06 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
javascript对象3个属性特征
2021/11/17 Javascript
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android