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


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 相关文章推荐
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
js AspxButton的客户端操作
Jun 26 Javascript
Javascript document.referrer判断访客来源网址
May 15 Javascript
利用jquery包将字符串生成二维码图片
Sep 12 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
js实现图片上传并预览功能
Aug 06 Javascript
详细分析vue响应式原理
Jun 22 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安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
JavaScript中获取元素索引的函数
2010/09/10 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
Python中的index()方法使用教程
2015/05/18 Python
python统计cpu利用率的方法
2015/06/02 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
12.4全国法制宣传日活动总结
2014/11/01 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
MySQL sql模式设置引起的问题
2022/05/15 MySQL