上一節實現了循環列表數據渲染到視圖,并給列表每一項添加了路由導航到新頁面查看更多細節,但是目前我們的數據都是虛擬的,現在我們就開始利用微信的request請求來接收豆瓣電影接口提供的數據。API: wx.request(OBJ ...
參數有7個,這里主要講一下幾個重要的:
onLoad: function() {var url=https://api.douban.com/v2/movie/top250;var that = this;//確?;卣{函數this的指向正確,后面會以es6的箭頭函數代替wx.request({url:url, //KEY和KEY值相同可簡寫為urldata: {}, //不要求數據header: { 'Content-Type': 'application/json' },//成功時的回調,res為返回值,需要儲存到我們的data數據里面success: function(res) {that.setData({moivelist: res.data.subjects,loading: true})}})}
<loading hidden="{{loading}}">加載中....</loading>
onLoad: function(options) {var that = this;var address = 'https://api.douban.com/v2/movie/subject/';wx.request({url: address + options.id,data: {},header: { 'Content-Type': 'application/json' },success: function(res) {that.setData({item: res.data,loading: true})}})}
<import src="../temple/temple.wxml"></import>
<loading hidden="{{loading}}">
加載中....
</loading>
<view class="searchWrap">
<view class="inputWrap">
<icon type="search" size="20"/>
<input placeholder="請輸入搜索內容" value="{{content}}" type="text" placeholder-style="custom-placeholder-style" placeholder-class="custom-placeholder-class" bindinput="inputing" bindblur="quick"/>
</view>
<view class="cancel" bindtap="searching">{{cancel}}</view>
</view>
<scroll-view class="main" scroll-y="true" bindscrolltoupper="" bindscrolltolower="" bindscroll="" scroll-into-view="" scroll-top="">
<block wx:for="{{moivelist}}">
<template is="try" data="{{item}}"></template>
</block>
</scroll-view>
data: {moivelist: [],loading: true,cancel: "取消",search: ""},inputing: function(event) {if (event.detail.value) {this.setData({cancel: "搜索"})} else {this.setData({cancel: "取消"})}},//失去焦點事件quick: function(event) {if (!event.detail.value) {this.setData({cancel: "取消"})} else {this.setData({search: event.detail.value})}},//點擊搜索事件searching: function() {if (this.data.cancel === "取消") {wx.hideKeyboard()} else {this.setData({loading: false})wx.request({url: url + this.data.search,data: {},header: { 'Content-Type': 'application/json' },success: function(res) {that.setData({moivelist: res.data.subjects,loading: true})}})}}
創建一個util文件夾,在里面創建一個util.js文件,用來放我們的方法。
function getData(address,datas,cb){
wx.request({
url: address,
data:datas,
header: { 'Content-Type': 'application/json' },
success: cb
})
}
module.exports = {
getData: getData
}
onLoad: function() {util.getData(url,{},(res)=>{this.setData({moivelist: res.data.subjects,loading: true})})}