美文网首页
第八章 豆瓣电影数据获取

第八章 豆瓣电影数据获取

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

    全局变量

    
    doubanBase: "http://t.yushu.im/"
    
    
    

    引用

    var app = getApp();
    var util = require('../../utils/util.js');
    // 基本豆瓣域名地址
    var baseUrl = app.globalData.doubanBase;
    
    

    初始化

    onLoad: function (options) {
    // 定义电影接口及获取数量为前3个
    var inTheatersUrl = baseUrl + 'v2/movie/in_theaters' +
    '?start=0&count=3';
    
    
    

    方法

    this.getMovieList(comingSoonUrl, "comingSoon", "即将上映");
    
    

    方法步骤

    getMovieList: function (url, category, name) {
    var that = this;
    util.sendHttpRequest(url, 'GET')
    .then(data => {
    that.handlerResponseData(data, category, name);
    })
    .catch(error => {
    util.showToast('加载失败');
    console.log(error);
    });
    },
    
    

    处理获取到的数据

    handlerResponseData: function (data, category, name) {
    var movies = [];
    for (var i in data.subjects) {
    // 获取subject数组内的每一个子元素
    var subject = data.subjects[i];
    var title = subject.title;
    // 标题超过6则用...显示
    if (title.length >= 6) {
    title = title.substring(0, 6) + "...";
    }
    // 用一个临时对象保存数据
    var temp = {
    movieId: subject.id,
    title: title,
    stars: util.converToStarsArray(subject.rating.stars),
    average: subject.rating.average,
    image: subject.images.large
    }
    // 把上面的数据装进movies
    movies.push(temp);
    }
    var movieData = {};
    movieData[category] = {
    name,
    movies
    };
    // 打包获取到的数据
    this.setData(movieData);
    console.log(movieData,"电影数据")
    console.log(movies, "电影数据movies")
    },
    
    

    点击加载更多电影,通过不同类型名来进入不同的‘’更多电影‘’

    onMoreTap: function (event){
    var name = event.currentTarget.dataset.name;
    console.log(name,"更多电影的类");
    this.setData({
    name
    });
    wx.navigateTo({
    url: 'movie-more/movie-more?name=' + name,
    });
    },
    
    

    相关文章

      网友评论

          本文标题:第八章 豆瓣电影数据获取

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