app.jsoncss
"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.wxmlhtml
<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.jspython
onMoreTap:function(event){ var category = event.currentTarget.dataset.category; wx.navigateTo({ url: 'more-movie/more-movie?category=' + category }) },
more-movie.jsjson
// pages/movies/more-movie/more-movie.js Page({ onLoad: function (options) { var category = options.category; console.log(category); }, })
分別點擊更多,能夠看到對應的分類app
more-movie.jsxss
// 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, }) }, })
util.jspost
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.jsui
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 }); }, onReady: function () { wx.setNavigationBarTitle({ title: this.data.categoryTitle, }) }, })
movie-grid-template.wxmlthis
<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.wxssurl
@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";
預覽