微信小程序实战–集阅读与电影于一体的小程序项目(六)
发布时间:2020-12-16 23:45:20 所属栏目:百科 来源:网络整理
导读:24.更多电影 app.json "pages": [ "pages/posts/post","pages/welcome/welcome","pages/posts/post-detail/post-detail","pages/movies/movies","pages/movies/more-movie/more-movie" ], more-list-template.wxml view class="more" catchtap='onMoreTap' d
24.更多电影app.json "pages": [ "pages/posts/post","pages/welcome/welcome","pages/posts/post-detail/post-detail","pages/movies/movies","pages/movies/more-movie/more-movie" ], more-list-template.wxml <view class="more" catchtap='onMoreTap' data-category="{{categoryTitle}}"> <text class="more-text">更多</text> <image class="more-img" src="/images/icon/arrow-right.png"></image> </view> movies.js onMoreTap:function(event){ var category = event.currentTarget.dataset.category; wx.navigateTo({ url: 'more-movie/more-movie?category=' + category }) }, more-movie.js // pages/movies/more-movie/more-movie.js Page({ onLoad: function (options) { var category = options.category; console.log(category); },}) 分别点击更多,可以看到对应的分类 25.动态设置导航栏标题more-movie.js // pages/movies/more-movie/more-movie.js Page({ data:{ categoryTitle: '',},onLoad: function (options) { var category = options.category; this.data.categoryTitle = category; console.log(category); },onReady: function () { wx.setNavigationBarTitle({ title: this.data.categoryTitle,}) },}) 26.更多电影页面数据加载util.js function http(url,callback) { wx.request({ url: url,method: 'GET',header: { 'content-type': 'json' },success: function (res) { callback(res.data) } }) } module.exports = { convertToStarArray: convertToStarArray,http: http,}; more-movie.js var util = require('../../../utils/util.js') var app = getApp(); Page({ data:{ categoryTitle: '',movies: {},onLoad: function (options) { var category = options.category; this.data.categoryTitle = category; var dataUrl = '' switch (category) { case "正在热映": dataUrl = app.globalData.g_baseUrl + "/v2/movie/in_theaters"; break; case "即将上映": dataUrl = app.globalData.g_baseUrl + "/v2/movie/coming_soon"; break; case "豆瓣Top250": dataUrl = app.globalData.g_baseUrl + "/v2/movie/top250"; break; } util.http(dataUrl,this.processDoubanData) },processDoubanData:function(data){ var movies = []; for (var idx in data.subjects) { var subject = data.subjects[idx] var title = subject.title; if (title.length >= 6) { title = title.substring(0,6) + "..."; } var temp = { stars: util.convertToStarArray(subject.rating.stars),title: title,average: subject.rating.average,coverageUrl: subject.images.large,movieId: subject.id } movies.push(temp) } this.setData({ movies: movies }); },}) movie-grid-template.wxml <import src="../movie/movie-template.wxml" /> <template name="movieGridTemplate"> <view class="grid-container"> <block wx:for="{{movies}}" wx:for-item="movie"> <view class="single-view-container"> <template is="movieTemplate" data="{{...movie}}" /> </view> </block> </view> </template> movie-grid-template.wxss @import "../movie/movie-template.wxss"; /*scroll-view*/ .single-view-container{ float:left; margin-bottom: 40rpx; } .grid-container{ height: 1300rpx; margin:40rpx 0 40rpx 6rpx; } more-movie.wxml <import src="../movie-grid/movie-grid-template.wxml" /> <template is="movieGridTemplate" data="{{movies}}" /> more-movie.wxss @import "../movie-grid/movie-grid-template.wxss"; 预览 27.实现上滑加载更多数据movie-grid-template.wxml <import src="../movie/movie-template.wxml" /> <template name="movieGridTemplate"> <scroll-view class="grid-container" scroll-y="true" scroll-x="false" bindscrolltolower="onScrollLower"> <block wx:for="{{movies}}" wx:for-item="movie"> <view class="single-view-container"> <template is="movieTemplate" data="{{...movie}}" /> </view> </block> </scroll-view> </template> more-movie.js var util = require('../../../utils/util.js') var app = getApp(); Page({ data:{ categoryTitle: '',requsetUrl: '',isEmpty: true,totalCount: 0 },onLoad: function (options) { . . . this.data.requsetUrl = dataUrl; util.http(dataUrl,processDoubanData:function(data){ . . . var totalMovies = {} if (!this.data.isEmpty) { totalMovies = this.data.movies.concat(movies) } else { totalMovies = movies this.data.isEmpty = false } this.setData({ movies: totalMovies }) this.data.totalCount += 20; },onScrollLower:function(event){ var nextUrl = this.data.requsetUrl + "?start=" + this.data.totalCount + "&count=20"; util.http(nextUrl, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |