小程序开发九:动态首页Home的网络请求和数据加载

上一节我们介绍了首页的数据绑定,但依然是以假数据的方式来呈现,到了这里,我们将实现动态的加载数据来呈现视图

传送门:


本节重点:动态数据绑定

思路分析
在页面中的每条动态,我们都可以视为一个对象{} , 那么页面中不可能至于一条动态,所以整个页面中,我们定义一个数组的对象,用来接收从服务器获取所有的动态数据,并且进行分配下去,这样就可以展现了。

首先我们在home.js中定义一个空的数组对象“dynamicList”

data: {
    //定义空的数组对象,用来接收从服务器获取的帖子数据
    dynamicList : {}
  },

这里要用网络请求,所以引入“request”的公用的js文件

var requestTool = require("../../utils/request.js") ;

然后我们再定义一个获取数据的函数方法

/**
   * 获取动态列表
   */
  getDynamicListData:function(){
    
    var pathUrl = "/dynamic/page";//请求的参数
    var paraData = {
      size: "10"//一次获取10条数据
    }
    var that = this;//*有回调的地方,记得这样写*为了防止指针指向错误
   requestTool.getRequest(pathUrl, paraData, that.getSuccess, that.getFailed);
  },

  //请求成功的回调参数
  getSuccess:function(data){
    var datas = data;
    var getList = [];
    for(var idx in data.items){
      if(idx > 9){
        break;
      }
      var obj = data.items[idx];
      var dynamicData = obj;
     //这里获取到的日期为时间戳,暂时不做处理,先写死日期,后面再处理
      dynamicData["postDate"] = '2019-09-23';
      getList.push(dynamicData);

    }
    //获取数据后,再次进行数据绑定,这里的操作,会即刻刷新所有绑定了数据的view,即获取到数据后,页面上进行数据填充
    this.setData({
      dynamicList: getList
    });
  },
  //请求失败的回调
  getFailed:function(){
    console.log("qingqiu 失败");
  },

然后我们在onLoad中调用上面的getDynamicListData函数方法:

onLoad: function (options) {
    //从服务器获取数据
    this.getDynamicListData();
  },

编译程序,发现并没有出现正确的显示情况

image.png

查找原因:

1.首先我们来看下是否网络请求成功

image.png

我们发现我们确实从服务器获取到了4条数据,
并且我们将其中一条数据打印显示:

_id :   5de0c096a4a1ef0d19767860
        
user_id :   120207
        
type    :   0
        
status  :   1
        
url :   https://dl.kuwyw.com//tmp/wx644a35bb10d6f345.o6zAJs0O18ah0HvK74PZQvQ3wdvw.KJHOj6VUv1xi249fc60c5edcc34bec139f0d35d4e6ac.png?imageView2/0/q/25|imageslim
        
text    :   人生得意须尽欢 莫使金樽空对月
        
timestamp   :   1575010454149
        
up_count    :   1
        
share_count :   0
        
view_count  :   0
        
comment_count   :   2
        
format  :   https://dl.kuwyw.com//tmp/wx644a35bb10d6f345.o6zAJs0O18ah0HvK74PZQvQ3wdvw.KJHOj6VUv1xi249fc60c5edcc34bec139f0d35d4e6ac.png
        
recommend   :   0
        
is_up   :       false
        
nick_name   :   ice
        
avatar  :   http://pso3htid6.bkt.clouddn.com/defultAvatar.jpg
        
age :   18
        
sex :   0

这里代表网络请求是成功的,

2.数据绑定
我们发现在js中,我们成功的绑定了“dynamicList”的数据,但是我们发现在home.wxml中,我们并没有用到此数据,

接下来我们对home.wxml进行修改:

<view class="innerContainer">
  <block wx:for="{{dynamicList}}">//这里我们用for循环进行数据绑定,即请求到了多少条数据,我们就创建多少个view,并且单个地显示数据
    <view class="dynamicContainer">

      <view class="dynamicTopView">
        <image class="userAvatar" mode="aspectFill" src="{{avatar}}"></image>
        <view class="userNick-postDate">
          <text class="userNick">{{nickName}}</text>
          <text class="postDate">{{postDate}}</text>
        </view>
        <image src="/images/home/moreIcon.png" class="moreIcon"></image>
      </view>

      <text class="contentText"></text>{{content}}

      <image class="contentImg" mode="aspectFill" src="{{contentImage}}"></image>

      <view class="dynamicBottomView">
        <image class="favoriteIcon" src="/images/home/xin.png" mode="aspectFit"></image>
        <text class="favoriteCount">{{likeCount}}</text>
        <image class="commentIcon" src="/images/home/pinglun.png"></image>
        <text class="commentCount">{{commentCount}}</text>
      </view>

      <view class="bottomLine"></view>

    </view>

  </block>


强调说明:

在wxml中绑定的数据的名称,必须 必须 必须和js文件中的字段名称保持一致,如在js文件中的昵称字段为nick_name,那么在wxml中必须也是nick_name,那么我们根据上面请求到的数据结构和具体参数,修改下wxml中绑定的字段名

<view class="innerContainer">

 <block wx:for = "{{dynamicList}}" wx:for-item  = "dynamic">
<view class="dynamicContainer">
    <view class="dynamicTopView">

      <image class="userAvatar" src="{{dynamic.avatar}}" mode="aspectFill"></image>
      <view class="userNick-postDate">
        <text class="userNick" >{{dynamic.nick_name}}</text>
        <text class="postDate">{{dynamic.postDate}}</text>
      </view>
      <image src="/images/home/moreIcon.png" class="moreIcon" ></image>

    </view>
    <text class="contentText">{{dynamic.text}}</text>
    <image class="contentImg"  mode="aspectFill" src="{{dynamic.url}}"></image>
    <view class="dynamicBottomView">

     <image class="favoriteIcon" src="{{dynamic.is_up?'/images/home/love.png' :'/images/home/xin.png'}}" catchtap="upUserTap" mode="aspectFit"  ></image>

     

      <text class="favoriteCount">{{dynamic.up_count}}</text>
      <image class="commentIcon" src="/images/home/pinglun.png"></image>
      <text class="commentCount">{{dynamic.comment_count}}</text>
    </view>
    <view class="bottomLine"></view>


  </view>
 <block wx:for = "{{dynamicList}}" wx:for-item  = "dynamic">

</view>

接下来 我们再次编译运行

image.png

总结:

数据的绑定这块,.js中申请的数据变量和.wxml中绑定的数据变量名称必须保持一致;

下一节:为大家介绍template的使用,

传送门:
十:动态首页Home的模板Template介绍和使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容