作者:ITDragon龍,原文地址
這章談談搜索和本地緩存。主要功能有,點擊搜索顯示搜索輸入框同時顯示搜索歷史記錄,點擊右側搜索按鈕搜索數據同時保存到搜索歷史記錄中,清除歷史記錄等功能。
效果圖:

先介紹搜索的功能:
第一步,做一個搜索的輸入框,可以利用weui-wxss框架中searchbar。沒有weui-wxss 可以在 https://github.com/weui/weui-wxss 找到目錄 dist - example - searchbar 目錄下找到。我將原本的"取消"換成了"搜索"的觸發按鈕。并修改 bindtap="searchData"

-
<view class="weui-search-bar">
-
<view class="weui-search-bar__form">
-
<view class="weui-search-bar__box">
-
<icon class="weui-icon-search_in-box" type="search" size="14"></icon>
-
<input type="text" class="weui-search-bar__input" placeholder="搜索" value="{{inputVal}}" focus="{{inputShowed}}" bindinput="inputTyping" bindtap="searchLogShowed"/>
-
<view class="weui-icon-clear" wx:if="{{inputVal.length > 0}}" bindtap="clearInput">
-
<icon type="clear" size="14"></icon>
-
</view>
-
</view>
-
<label class="weui-search-bar__label" hidden="{{inputShowed}}" bindtap="showInput">
-
<icon class="weui-icon-search" type="search" size="14"></icon>
-
<view class="weui-search-bar__text">搜索</view>
-
</label>
-
</view>
-
<view class="weui-search-bar__cancel-btn" hidden="{{!inputShowed}}" bindtap="searchData">搜索</view>
-
</view>
-
<view wx:if="{{searchLogShowed}}">
-
<view class="search-log" wx:for-item="searchLog" wx:for="{{searchLogList}}" wx:key="searchLogListId" bindtap="searchDataByLog" data-log="{{searchLog}}">
-
{{searchLog}}
-
</view>
-
<view class="clear-search-log" bindtap="clearSearchLog">清除搜索記錄</view>
-
</view>
js:
-
Page({
-
data:{
-
msgList:[], // 存儲文章列表信息
-
searchLogList:[], // 存儲搜索歷史記錄信息
-
hidden:true, // 加載提示框是否顯示
-
scrollTop : 0, // 居頂部高度
-
inputShowed: false, // 搜索輸入框是否顯示
-
inputVal: "", // 搜索的內容
-
searchLogShowed: false // 是否顯示搜索歷史記錄
-
},
-
onLoad:function(options){
-
// 頁面初始化 options為頁面跳轉所帶來的參數
-
var that = this;
-
wx.getSystemInfo({
-
success: function(res) {
-
that.setData( {
-
windowHeight: res.windowHeight,
-
windowWidth: res.windowWidth
-
})
-
}
-
});
-
// 如果緩存中有值,先從緩存中讀取
-
var info =
|