美文网首页
第八章 加载更多电影

第八章 加载更多电影

作者: 授之以渔不如授之以鱼 | 来源:发表于2019-05-30 11:53 被阅读0次

wxml添加滚动触底事件

<scroll-view class='gird-container' scroll-y="true" scroll-x="false" lower-threshold="0" bindscrolltolower="onScrollLower">
<block wx:for="{{movies}}" wx:for-item="item" wx:key="{{item.movieId}}">
<view class='grid-single-container'>
<template is="movieTemplate" data="{{...item}}" />
</view>
</block>
</scroll-view>

js加载更多电影

引用全局变量
var app = getApp();
var util = require('../../../utils/util.js');

加载
onLoad: function (options) {
var name = options.name;
var id = options.moremovieid
this.setData({
name
});
this.requestMovieData(name);
},


更多电影的类型名作为Bartitle

onReady: function () {
// 动态设置导航栏标题
// onLoad里不能操作UI,onShow也不行
wx.setNavigationBarTitle({
title: this.data.name,
});
},

电影获取方法

requestMovieData: function (name) {
var baseUrl = app.globalData.doubanBase;
var dataUrl = '';
switch (name) {
case "正在热映":
dataUrl = baseUrl + 'v2/movie/in_theaters';
break;
case "即将上映":
dataUrl = baseUrl + 'v2/movie/coming_soon';
break;
case "Top250":
dataUrl = baseUrl + 'v2/movie/top250';
break;
}
this.setData({
dataUrl
});
this.getMovieList(dataUrl);
},

获取电影方法的操作步骤

getMovieList: function (url) {
var that = this;
wx.showLoading({
title: '加载中',
});
util.sendHttpRequest(url, 'GET')
.then(data => {
if (data.subjects.length == 0) {
wx.showToast({
title: '已经没有数据了’,
});
return;
}
that.handlerResponseData(data);
})
.catch(error => {
util.showToast('数据加载失败!请重试');
console.log('error======' + error);
});
},

处理获得的电影,拼接已加载的和新加载的数据

handlerResponseData: function (data) {
var movies = [];
for (var i in data.subjects) {
// 获取subject数组内的每一个子元素
var subject = data.subjects[i];
var title = subject.title;
// 处理标题过长
if (title.length >= 6) {
title = title.substring(0, 6) + "...";
}
// 用一个临时对象保存item数据
var temp = {
movieId: subject.id,
title: title,
stars: util.converToStarsArray(subject.rating.stars),
average: subject.rating.average,
image: subject.images.large
}
movies.push(temp);
}
var totalMovies = {};
if (this.data.isEmpty) {        
// 第一次加载数据
totalMovies = movies;
// 赋值之后已经不是第一次了,置为false
this.data.isEmpty = false;
} else {
// 加载更多数据
// concat() 方法用于连接两个或多个数组,不会改变原数组
totalMovies = this.data.movies.concat(movies);
}
// 更新数据源
this.setData({
movies: totalMovies
});
// 总条目数自增20
this.data.totalCount += 20;
wx.stopPullDownRefresh();
wx.hideLoading();
},

上滑加载事件

onScrollLower: function (event) {
console.log("上滑");
var nextDataUrl = this.data.dataUrl + "?start=" + this.data.totalCount + "&count=20";
this.getMovieList(nextDataUrl);
},

下拉刷新事件

onPullDownRefresh: function () {
var refreshUrl = this.data.dataUrl +
"?start=0&count=20";
this.setData({
movies: {},
isEmpty: true,
totalCount: 0
});
this.getMovieList(refreshUrl);
},

movie-grid的wxml

<import src="../movie/movie-template.wxml" />
<template name="movieGridTemplate">
<!-- 上划加载更多电影 ,bindscrolltolower添加触底事件-->
<scroll-view class='gird-container' scroll-y="true" scroll-x="false" lower-threshold="0" bindscrolltolower="onScrollLower">
<block wx:for="{{movies}}" wx:for-item="item" wx:key="{{item.movieId}}">
<view class='grid-single-container'>
<template is="movieTemplate" data="{{...item}}" />
</view>
</block>
</scroll-view>
</template>


相关文章

  • 第八章 加载更多电影

    wxml添加滚动触底事件 js加载更多电影 更多电影的类型名作为Bartitle 电影获取方法 获取电影方法的操作...

  • 加载更多。。。

    》写在前面:自己留个记号,仅供自己使用,如想实现类似的,可以参考 一、wap端1、首先来个weui.css2、写上...

  • 加载更多

    html代码 server-mock模拟后端代码 【个人总结,如有错漏,欢迎指出】:>

  • 加载更多

    12个加载更多。 大约还要10个。 才能下载完你的文章。 微信打开链接,然后点击加载更多,中指滚动下拉,数数,打开...

  • 第八章 豆瓣电影数据获取

    全局变量 引用 初始化 方法 方法步骤 处理获取到的数据 点击加载更多电影,通过不同类型名来进入不同的‘’更多电影‘’

  • React Native刷新加载更多

    react native的刷新加载更多,有多种方案 "加载更多" 需要点击 "加载更多" 根据手势向上滑动,自动显...

  • ReactNative踩坑2:FlatList的onEndRea

    做一个豆瓣电影展示,下拉加载更多数据,结果疯狂请求一次加载完了..... 不要让ScrollView作为FlatL...

  • 需求分析:加载更多

    Part.One 功能概述 功能名称 加载更多 功能描述 点击“加载更多”按钮、或上拉列表时,加载更多的内容。 使...

  • 8-3 更多电影页面加载数据

    在more-movie页面中,首先是要根据不同的category加载页面。所以在more-movie.js中函数中...

  • thinkphp3.2.3的ajax加载更多

    效果:点击加载更多,根据设定的加载条数显示加载内容,全部加载完毕后加载更多按钮消失。话不多说,直接上代码。 htm...

网友评论

      本文标题:第八章 加载更多电影

      本文链接:https://www.haomeiwen.com/subject/djmmtctx.html