zoukankan      html  css  js  c++  java
  • (十一)微信小程序:电影页面数据适配

    电影页面数据适配

      上一节我们已经获取到了豆瓣的电影数据,那么接下来我们实现将获取到的数据放到页面上

     一:数据过滤

          1.为什么进行数据过滤?

            我们只需要取得部分数据显示到界面上,因此需要将数据过滤

          2.初步过滤后形成一类型数据(正在热映),还需进一步过滤形成(正在热映、即将热映、排行榜)三部分        

    // pages/movie/movie.js
    var utils = require("../../utils/utils.js");
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        movies:[],
        in_theaters:[],
        coming_soon:[],
        top250:[],
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        utils.http("http://localhost:8888/v2/movie/in_theaters?count=3",this.getMovies,"in_theaters","正在热映"),
        utils.http("http://localhost:8888/v2/movie/coming_soon?count=3",this.getMovies,"coming_soon","即将上映"),
        utils.http("http://localhost:8888/v2/movie/top250?count=3",this.getMovies,"top250","排行榜")
      },
      getMovies:function(data,type,category){
        console.log(data);
        /**
         * 数据过滤
         *    1.大图
         *    2.标题
         *    3.星星
         *    4.评分
         *    5.id
         */
        var movies = [];
        for(var i = 0;i<data.subjects.length;i++){
            var temp = {
              large:data.subjects[i].images.large,
              title:data.subjects[i].title,
              stars:null,
              average:data.subjects[i].rating.average,
              id:data.subjects[i].id
            }
            movies.push(temp);
        }
        var readyMovies = {};
         readyMovies[type] = {
            movies:movies,
            category:category
         }
         this.setData(readyMovies);
         console.log(readyMovies);
    
      }
    })
    movie.js

              代码难点解析:1.初步过滤:利用for循环取得每一部电影(对象),存储至movies中

                     2.二次过滤:存储至readyMovies对象中,此代码解析:                                    呈现出来的效果是键值对的形式:

                           加上this.setData(readyMovies),则相当于打开了第一层{}

      二.呈现出来的效果

                

        本节完成了对于页面数据的适配,关键还是对于过滤+拆分的理解;

    缺陷是没有对星星和评分进行处理,下节处理星星和评分(⊙o⊙)哦~

                          

  • 相关阅读:
    iTOP-4412开发板低功耗高性能的开源硬件平台——上手评测
    迅为三星Exynos 4412开发板四核Cortex-A9ARM安卓linux开发板
    体验更低功耗的开源硬件平台-迅为4412开发板
    【分享】iTOP-4412开发板使用之初体验[多图]
    【嵌入式开发板】大家都在玩儿的4412开发板
    [POJ] 2965.The Pilots Brothers' refrigerator
    [POJ] 1753.Flip Game
    [HDOJ] 1753.大明A+B (大数加法)
    C++ Primer 第五版 一些遇到的注意点记录。
    [HDOJ] 1172.猜数字
  • 原文地址:https://www.cnblogs.com/happy-prince/p/12777462.html
Copyright © 2011-2022 走看看