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

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

@RequestMapping(value="findOne")@ResponseBodypublic 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

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

微信小程序入门四详情页面相关推荐

  1. 微信小程序学习(四)路由页面配置

    创建路由,也就是把我们之前几个示例的页面连起来,可以相互跳转 在app.json添配置  是给主页面添加tab页 代码 {"pages": ["pages/todo/to ...

  2. 微信小程序入门四:实现table效果

    微信小程序中没有table组件,那么怎么实现呢? 其实使用多个view组件就可以实现,接下来就直接看代码吧 <!--index.wxml--><view class="co ...

  3. 微信小程序入门(登录页面)

    1.首先前往开发者工具下载安装开发工具: 2.安装后微信扫码,并填写自己的AppID选择自己的项目目录后登录: 登陆后点击工具上的编译按钮,可以在工具的左侧模拟器界面看到这个小程序的表现,也可以点击预 ...

  4. 微信小程序入门四: 导航栏样式、tabBar导航栏

    实例内容 导航栏样式设置 tabBar导航栏 实例一:导航栏样式设置 小程序的导航栏样式在app.json中定义. 这里设置导航,背景黑色,文字白色,文字内容测试小程序 app.json内容: {&q ...

  5. 微信小程序跳转详情页面

    今天,我们要实现如下的效果,进入详情页,获取产品的具体数据.本文请求的数据是本地的,实际开发是要通过ajax请求服务器中的产品数据,为了避免业务代码扰乱视听,只截取了关键代码~ 1.首先我们需要两个页 ...

  6. 微信小程序入门1--新建微信小程序页面

    微信小程序入门1–新建微信小程序页面 在新建微信小程序后会自动生成一个DEMO实例,我们可以在实例中修改自己所需的内容,当内容过多时,实例中的页面不足以满足我们的需求,因此需要新建微信小程序页面. 本 ...

  7. 天河微信小程序入门《四》:融会贯通,form表单提交数据库

    天河在阔别了十几天之后终于又回来了.其实这篇文章里的demo是接着(天河微信小程序入门<三>)后面就做了的,但是因为最近在做别的项目,所以就偷懒没有发出来.放到今天来看,从前台提交数据到数 ...

  8. 微信小程序入门-音乐播放器

    萌新,随便做做,只是了解一下微信小程序,希望可以给看到的胖友一点参考. 之前在网上看到这个人入门四天做完一个,我五天做完了,比他好看,突然有一点自信 然后发现自己特别不乐意重新看自己的代码,总觉得写的 ...

  9. 【微信小程序】微信小程序入门与实战-个人笔记

    微信小程序入门与实战 文章目录 微信小程序入门与实战 1 初识微信小程序 1-1 2020版重录说明 1-2 下载小程序开发工具 1-3 新建小程序项目 1-4 小程序appid的注册 1-5 新版小 ...

最新文章

  1. 【5min+】 巨大的争议?C# 8 中的接口
  2. 二开微信表情包小程序魔改版源码
  3. iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)
  4. shell - 查看天气
  5. 什么是JAVA内容仓库(Java Content Repository)(4完)
  6. redis实战之事务与持久化
  7. zblog博客模板-zblog插件免费-支持PHP以及ASP
  8. Some things about RESUME
  9. 你今天Git了吗?上传资源上Github最新教程!
  10. 【深入浅出Spring原理及实战】「开发实战系列」带你看看那些可能你还不知道的Spring特殊技巧和想不到的招数
  11. unilife-fridge-producetion-show
  12. CSS3设置Div左右两边或者上下边框的样式
  13. 男人也勾魂(航爷钦定题目,汗!)
  14. 读书笔记——袁岳_趁年轻,折腾吧
  15. SQL笔试题:某团数分岗笔试真题详解
  16. JVM虚拟机之调优命令
  17. 常见类型移动互联网应用程序必要个人信息范围规定(快速解读)
  18. 游览慕田峪长城、红螺寺
  19. 微信小程序中this.setData is not a function报错问题
  20. 转:高层游戏引擎——基于OGRE所实现的高层游戏引擎框架

热门文章

  1. 剑破冰山之十一章 层次查询
  2. 基于平面的约束2D激光雷达和相机的联合标定(2D Laser and Camera Calibration )原理及项目代码具体使用——旷视
  3. 阿里云网站ICP备案一定要知道的东西
  4. 发送ZPL指令到斑马打印机,并监控打印成功或者失败的状态信息
  5. 职场中的五险一金详细说明
  6. 【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose
  7. 升级win10后以太网总是断开连接的解决办法,针对Broadcom NetLink (TM) Gigabit Ethernet网卡
  8. 区块链中公有链、联盟链和私链的区别
  9. c语言游戏经典案例,C语言新案例-跑马游戏
  10. Uninstall注册表项