小程序系列课程之6事件绑定获取元素ID,页面传值,获取数据

根据在页面需要实现不同的跳转和不同的页面传值,梳理了以下情况

情况一:在小程序的开发过程中会用到动态传参,比如根据某一个页面传参不同,加载不同的新的页面(一般会用到wx:for循环显示数组,实现的功能是点击不同的元素进入不同的页面,比如在另一个页面加载某个元素的详细信息。)




情况一(解决方案):

1、跳转方式:采用navigator跳转,在navigator跳转的链接上将参数加上去:

小程序系列课程之6事件绑定获取元素ID,页面传值,获取数据_第1张图片

< block wx:for= "{{requestData}}" wx:for-item= "itemName" wx:for-index= "index">
< navigator url= "/pages/detail/detail?id={{index}}" >
navigator >
block >

 通过点击时,传入的index到详细页面detail

2、从传入的index,到新的页面js中(接收index.wxml传递的参数并处理)

detail.js

Page({ 
   onLoad: function (options) { 
   console.log(options.id) 
   var init = myData.searchmtdata(options.id) 
   this.setData({ 
      data_MTId: init.MTId, 
     data_status: init.status, 
     data_duration: init.Duration, 
     data_Operator: init.Operator, 
     data_IdleReason: init.IdleReason 
 }) 
 } 
}) 

searchmtdata这个方法在之前的博客中已经有说明,就是根据id的值来查询,返回一个list中具体的对象,即某个item的详细信息。
onLoad:function这个函数在页面加载时就会执行一次,options就是接收的从index.wxml传递过来的参数。根据id查询到具体的list对象后再进行赋值,此时data_**中的数据就是某个item的详细信息了。
3、查询得到数据之后,在前端做显示(detail.wxml)





1、小程序里的点击事件

< text id= '{{index}}' bindtap= 'bindItemTap'> click me text >

绑定事件bindItemTap id为{{index}}。由于这是单个的绑定,这里不容易出错。

重点: 对于列表渲染之后的情况,需要注意id写的地方,通过console 能够看到具体的数据。

< view class= 'teamright' >
< view class= "flex-item nametxt" >
< text id= '{{index}}' bindtap= 'bindItemTap'> {{index}} {{itemName.teamName}} text >
view >
< view class= "flex-item jianjietxt " id= '{{index}}' bindtap='bindItemTap'>
< text >{{itemName.shanchang}} text >
view >
view >
注:上下两个text 在这里的区别,
上面是对text进行了id 和事件绑定,在事件event中能够console到数据
下面是对view进行了id和事件绑定,在事件event中不能够console到数据id

   2、点击事件到对应的js中

bindItemTap: function (e) {
//获取当前item的下标id,通过currentTarget.id
var index = e.currentTarget.id;
//var index=e.target.id
console.log(index);
console.log(e);
//用来实现跳转,并把传递数据
wx.navigateTo({
url: '../teamdetail/teamdetail'+index})
}

注:在获取具体的内容时,可以通过console中看到数据,然后考虑currentTarget、target

来获取数据(currentTarget和target的区别)

3、







你可能感兴趣的:(小程序)