|
本文聚合了三个知识点 一:页面跳转与返回并回传数据 A页面: .wxml文件 <view class="flex-wrp"> <text style="width: 32%;">选择城市</text> <input style="width: 68%;" type="text" bindtap="city" placeholder="请选择城市" value="{{cityName}}"/> </view>
.js文件 Page({ data: { cityName:"深圳" #用来回传的关键字,默认深圳 }, city: function(e){ wx.navigateTo({ url: '../city/city' }) }})
A页面跳转B页面之后返回: cityNameClick: function (event) { var cityName = event.currentTarget.dataset.cityname; console.log(cityName); var pages = getCurrentPages(); var currPage = pages[pages.length - 1]; //当前页面 var prevPage = pages[pages.length - 2]; //上一个页面 //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 prevPage.setData({ cityName: cityName }) wx.navigateBack(); },
实现知乎客户端的一个重要知识前提就是,要知道怎么通过知乎新闻的接口,来把数据展示到微信小程序端上。 那么我们这一就先学习一下,如何将接口获取到的数据展示到微信小程序上。 1.用到的知识点 - wx.request 请求接口资源(微信小程序api中的发起请求部分)
- swiper 实现轮播图的组件
- wx:for 循环语句
- 微信小程序的基础知识
2.实现原理 首先,先看一下这个请求函数 varwx.request({ url: '******', //这里填写你的接口路径 header: { //这里写你借口返回的数据是什么类型,这里就体现了微信小程序的强大,直接给你解析数据,再也不用去寻找各种方法去解析json,xml等数据了 'Content-Type': 'application/json' }, data: {//这里写你要请求的参数 x: '' , y: '' }, success: function(res) { //这里就是请求成功后,进行一些函数操作 console.log(res.data) }})
3.代码 分解图
<1>首先上一段知乎接口数据的json格式中的开头 "date":"20161114", "stories":[ { "images":[ "" ], "type":0, "id":8975316, "ga_prefix":"111422", "title":"小事 · 我和你们一样" }, { "images":[ "" ], "type":0, "id":8977438, "ga_prefix":"111421", "title":"成长嘛,谁说就意味着一定要长大了?" },
<2>index.js中 Page({ data: { duration: 2000, indicatorDots: true, autoplay: true, interval: 3000, loading: false, plain: false }, onLoad: function () { var that = this//不要漏了这句,很重要 wx.request({ url: ', headers: { 'Content-Type': 'application/json' }, success: function (res) { //将获取到的json数据,存在名字叫zhihu的这个数组中 that.setData({ zhihu: res.data.stories, //res代表success函数的事件对,data是固定的,stories是是上面json数据中stories }) } }) }})
<3> index.wxml中 <view ><swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" class="banners" interval="{{interval}}" duration="{{duration}}">//这里边的属性不重要,看下边 <block wx:for="{{zhihu}}"> <swiper-item class="banner" > <image src="{{item.image}}" data-id="{{item.b}}" bindtap="bindViewTap" class="banner-image" width="100%" height="100%"/> <text class="banner-title">{{item.title}}</text> </swiper-item> </block></swiper></view>
看完这个代码,你会想,根据微信小程序的绑定原理,这里边的代码哪里调用了onLoad()这个函数,不用多想,微信小程序给你省略了这些步骤。直接调用zhihu这个数组就行。 三:text文本溢出单行/多行省略 在做小程序的时候遇到在text标签里面的文本过长,需要限制显示长度,并且在限制了长度的后面加上省略号代表后面还有内容。
这时候设置样式: .note_item text{ display: -webkit-box; font-size:28rpx; color:#000000; line-height: 40rpx; word-break: break-all; -webkit-box-orient: vertical; -webkit-line-clamp:3; overflow: hidden; text-overflow:ellipsis;}
如果只显示单行的话: .note2_item text{ display: block; font-size:28rpx; color:#000000; line-height: 40rpx; height: 120rpx; overflow: hidden; white-space: nowrap; text-overflow:ellipsis;}
这里两个display是不同的 |