微信小程序入门四详情页面

 

 

前三章基本完成文章列表页面的UI界面和数据加载,这章介绍内容详情页面的加载和布局。有了之前的知识储蓄,这章就容易多了。废话不多说。

首先是服务端代码,通过id查询数据:接口 https://www.itit123.cn/itdragon/findOne  controller层 源码

 

@RequestMapping(value="findOne")
	@ResponseBody
	public Object edit(@RequestParam(value="id") String id){
		try {
			WxData wxData = wxDataService.findOne(WxData.class,Long.valueOf(id));
			Map<String, Object> resultMap = new HashMap<String, Object>();
			resultMap.put("id", wxData.getId());
			resultMap.put("title", wxData.getTitle());
			resultMap.put("content", wxData.getContent());
			resultMap.put("src", wxData.getImageUrl());
			resultMap.put("time", wxData.getCreatedDate());
			return gson.toJson(resultMap);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

 

微信小程序,详情页面:detail.wxml 。变量和list.wxml页面不同,结构是 arg.key 的形式。

 

<view class="page">
    <view class="page__bd">
        <view class="weui-article">
            <view class="weui-article__h1">{{msgDetail.title}}</view>
            <view class="weui-article__section">
                <view class="weui-article__section">
                    <view class="weui-article__h3">{{msgDetail.time}}</view>
                    <view class="weui-article__p">
                    {{msgDetail.content}}
                    </view>
                    <view class="weui-article__p">
                        <image class="weui-article__img" src="{{msgDetail.src}}" mode="aspectFit" style="height: 180px" />
                    </view>
                </view>
                
            </view>
        </view>
    </view>
</view>


detail.js:

 

 

 

 

// pages/detail/detail.js
var app = getApp();
Page({
  data:{
    msgDetail:{}
  },
  onLoad:function(options){
    var that = this;
    app.ajax.req('/itdragon/findOne',{
      id: options.id
    },function(res){ 
      that.setData({
        msgDetail:res
      })
    });
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  }
})

 

 

这里 id 的值,是和导航中传值有关(官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/component/navigator.html

list.wxml页面中,url 是id={{id}} , 所以这里的id取值便是 options.id。如果不放心可以console.log()打印出来看看

<navigator url="../detail/detail?id={{id}}" class="weui-media-box weui-media-box_appmsg" hover-class="weui-cell_active">

 

 

 

这样完成了,效果图:

学习的过程中遇到了一个 400 的错误,问题是在于wx.request 的header (官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html#wxrequestobject

服务端不是接收json格式的数据,改成application/x-www-form-urlencoded 

修改util.js 代码如下:

 

var rootDocment = 'https://www.itit123.cn';
function req(url,data,cb){
    wx.request({
      url: rootDocment + url,
      data: data,
      method: 'post',
      header: {'Content-Type':'application/x-www-form-urlencoded'},
      success: function(res){
        return typeof cb == "function" && cb(res.data)
      },
      fail: function(){
        return typeof cb == "function" && cb(false)
      }
    })
}


下一章介绍文章列表的下拉刷新和上拉加载的功能。该章节源码地址:http://download.csdn.net/detail/qq_19558705/9774984

 

 

微信小程序入门教程集合:微信小程序入门教程全集

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值