首页 > 课堂 > 小程序 > 正文

关于小程序动态绑定数据,动态事件处理的方法教程

2020-03-21 16:19:15
字体:
来源:转载
供稿:网友
原理:主要是通过定义标签的标识与数据进行判断加载

关键核心代码

  1. <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> 
  2.  
  3. var objurl= JSON.parse(res.data); 
  4.  
  5.                 //重置图片参数 
  6.  
  7.                 var temppostionlist=that.data.postionlist; 
  8.  
  9.                 for (var i=0;i<temppostionlist.length;i++) 
  10.  
  11.                 { 
  12.  
  13.                     if (temppostionlist[i]["Type"]==e.currentTarget.dataset.type){                      
  14.  
  15.                       temppostionlist[i]["imgurl"]=temppaths; 
  16.  
  17.                       temppostionlist[i]["serverimgurl"]=objurl.Body.Data; 
  18.  
  19.                       break
  20.  
  21.                     }                        
  22.  
  23.                 } 
  24.  
  25.                 that.setData( {   
  26.  
  27.                          postionlist:temppostionlist    
  28.  
  29.                 }) 

利用image的data-Type,可以在js后台中知道是点击了哪个image,上传图片后再循环得出相等data-type的数据项进行赋值,这样就能动态给相应的标签赋值

addtaskimg 为统一的动态事件

主要代码如下

.wxml

    
  1. <scroll-view class="center" scroll-y="true"> 
  2.  
  3.         <view class="midcenter" wx:for="{{postionlist}}"> 
  4.  
  5.         <view class="mid_top" > 
  6.  
  7.                 <image class="smallimage" src="../images/my/XXH/line_title.png" mode="aspectFit" ></image> 
  8.  
  9.                 <text>{{item.KeyValue}}</text> 
  10.  
  11.         </view> 
  12.  
  13.         <view class="mid_center"> 
  14.  
  15.                 <text>{{item.Remark}}</text> 
  16.  
  17.         </view> 
  18.  
  19.         <view class="mid_bottom"> 
  20.  
  21.                 <image class="midimage" data-Type="{{item.Type}}" data-BillCode="{{item.BillCode}}" data-src="{{item.imgurl}}" 
  22.  
  23.                 src="{{item.imgurl}}" mode="scaleToFill" bindtap="addtaskimg" bindlongtap="imglongtap" ></image> 
  24.  
  25.         </view>           
  26.  
  27.         </view> 
  28.  
  29.     </scroll-view> 


.js

  1. addtaskimg:function(e){     
  2.  
  3.     //添加选择图片   
  4.  
  5.     if (this.data.blongtap) 
  6.  
  7.     { 
  8.  
  9.       //处理如果是长按,则不再执行下面的 
  10.  
  11.       this.setData({ 
  12.  
  13.         blongtap:false 
  14.  
  15.       }); 
  16.  
  17.       return
  18.  
  19.     } 
  20.  
  21.     var that = this
  22.  
  23.      wx.chooseImage({ 
  24.  
  25.        count:1, //默认1张 
  26.  
  27.        success:function(res){ 
  28.  
  29.             //先上传至服务器,再返回路径供保存 
  30.  
  31.             var temppaths=res.tempFilePaths[0];//+".jpg"; 
  32.  
  33.             wx.uploadFile({ 
  34.  
  35.               url:app.globalData.ghost+"YWTask/PutUploadFile?BillCode="+that.data.detail.BillCode+"&ID="+that.data.id, 
  36.  
  37.               filePath:temppaths, 
  38.  
  39.               name:'image'
  40.  
  41.               formData:{}, 
  42.  
  43.               success:function(res){ 
  44.  
  45.                 //res.data返回的是一个字符串,需进行转换成objcet,wx不识别eval函数 
  46.  
  47.                 console.log(res.Data); 
  48.  
  49.                 var objurl= JSON.parse(res.data); 
  50.  
  51.                 //重置图片参数 
  52.  
  53.                 var temppostionlist=that.data.postionlist; 
  54.  
  55.                 for (var i=0;i<temppostionlist.length;i++) 
  56.  
  57.                 { 
  58.  
  59.                     if (temppostionlist[i]["Type"]==e.currentTarget.dataset.type){                      
  60.  
  61.                       temppostionlist[i]["imgurl"]=temppaths; 
  62.  
  63.                       temppostionlist[i]["serverimgurl"]=objurl.Body.Data; 
  64.  
  65.                       break
  66.  
  67.                     }                        
  68.  
  69.                 } 
  70.  
  71.                 that.setData( {   
  72.  
  73.                          postionlist:temppostionlist    
  74.  
  75.                 })                
  76.  
  77.               } 
  78.  
  79.             }) 
  80.  
  81.        } 
  82.  
  83.      }) 
  84.  
  85.   } 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表