微信小程序 “万利商城”实战之十一: 商品列表页跳转到详细页的实现

商品列表页点击商品图片时可以查看商品详情,我们先在pages/index这个文件夹下增加一个page,

名称叫productDetail, 建好后index文件夹下的文件结构是这样的:

然后我们修改index.wxml这个文件, 在<image>这个控件上加上tap事件,代码如下 :

1   <view>
2     <image class="image1" src="{{item.imageUrl}}" 
3     data-productId="{{item.productId}}" bindtap="tapDetail"></image>
4   </view>

bindtap="tapDetail"是点击图片时要执行的函数,
data-productId="{{item.productId}}" 是传递给函数的参数,参数名称为productId
在index.wxml文件加上事件代码就可以了,如下:
复制代码
1   tapDetail: function (options) { 
2     let productId = options.currentTarget.dataset.productid;
3  
4     wx.navigateTo({
5       url: '../index/productDetail?productid='+ productId,
6     })
7   },
复制代码

这个函数很简单, 先用let productId = options.currentTarget.dataset.productId;获取页面传递过来的productId ,

然后调用小程序提供的页面跳转函数 wx.navigateTo(), 传入页面名称和参数就可以了。

接下来我们完善productDetail.wxml这个页面。

复制代码
1 <view class="container"> 
2   <image class="image1" src="{{product.imageUrl}}"></image>
3   <text>{{product.productName}}</text>
4   <text>{{product.price}}</text>
5   <text>{{product.originalPrice}}</text>
6 </view>
复制代码

productDetail.js中的代码如下 :

复制代码
 1   data: {
 2     product:{}  //定义一个对象用于传值到productDetail.wxml页面, 用来显示商品信息
 3   },
 4 
 5   initProduct:function(productId)
 6   {
 7     console.log("productId:"+productId); //调试打印语句
 8     var _this=this;
 9     wx.request({ //调用API从服务器上获取当前product信息
10       url: 'http://www.tm.com/webapi/product',
11       data:{'productId':productId},
12       method:'GET',
13       success:function(res){
14         //var productObj=res.data;
15         var productObj={
16 'productId':111,'productName':'女装T恤简洁11','price':12.9,'originalPrice':22.9,'imageUrl':'../../images/product11.jpg', 17 'inShoppingCart':0,'productQty':11}; 18 19 _this.setData({product:productObj}); //从服务器上获取的productObj值通过setData()函数设置到页面上显示出来。 20 } 21 }) 22 }, 23 24 25 /** 26 * 生命周期函数--监听页面加载 27 */ 28 onLoad: function (options) { 29 let productId = options.productid; //接收上一个页面传递过来的参数 30 console.log(productId); //打印输出,调试用。 31 this.initProduct(productId); 调用函数用来初始化产品信息。 32 },
复制代码

 

 

 

posted @   屏风马  阅读(686)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示