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


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 下拉框联动实现代码
Apr 09 Javascript
treepanel动态加载数据实现代码
Dec 15 Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 Javascript
优化Node.js Web应用运行速度的10个技巧
Sep 03 Javascript
JQuery动画与特效实例分析
Feb 02 Javascript
javascript 使用for循环时该注意的问题-附问题总结
Aug 19 Javascript
用js写的一个路由(简单实例)
Sep 24 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
小程序实现多列选择器
Feb 15 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
Apr 15 Javascript
微信小程序canvas分享海报功能
Oct 31 Javascript
JS校验与最终登陆界面功能完整示例
Jan 13 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 类型转换函数intval
2009/06/20 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
动态添加js事件实现代码
2009/03/12 Javascript
ext 代码生成器
2009/08/07 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
pycharm安装和首次使用教程
2018/08/27 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
python实现祝福弹窗效果
2019/04/07 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python requests库的使用
2021/01/06 Python
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
.net笔试题
2014/03/03 面试题
StringBuilder和String的区别
2015/05/18 面试题
移风易俗倡议书
2014/04/15 职场文书
大学新闻系自荐书
2014/05/31 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL