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


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 解析Json字符串的性能比较分析代码
Dec 16 Javascript
js里怎么取select标签里的值并修改
Dec 10 Javascript
jquery.post用法之type设置问题
Feb 24 Javascript
Javascript实现简单二级下拉菜单实例
Jun 15 Javascript
JQuery实现样式设置、追加、移除与切换的方法
Jun 11 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
深入浅析AngularJS中的module(模块)
Jan 04 Javascript
基于JavaScript实现全选、不选和反选效果
Feb 15 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
Feb 25 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 jQuery
JavaScript实现移动端带transition动画的轮播效果
Mar 24 Javascript
vue中data里面的数据相互使用方式
Jun 05 Vue.js
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 socke 向指定页面提交数据
2008/07/23 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
js实现简单计算器
2015/11/22 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
pyside写ui界面入门示例
2014/01/22 Python
Python装饰器decorator用法实例
2014/11/10 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
浅谈Django的缓存机制
2018/08/23 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
Python 必须了解的5种高级特征
2020/09/10 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
《悬崖边的树》读后感2篇
2019/12/02 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
Python使用scapy模块发包收包
2021/05/07 Python