目录
- 前言
- 一、概述
- 二、步骤
- 三、效果展示
- 总结
前言
主要实现功能,无美化,如需请自设
一、概述
开发工具:微信开发者工具
通过对微信原生组件input绑定事件实现对已获取的列表元素模糊查询的操作
二、步骤
在文件中新建一个goodFilter.wxs文件
代码如下(示例):
goodFilter.wxs
// 列表筛选方法
// List为需要筛选的列表,mytext是筛选所需要的条件,返回的为一个模糊查询的列表
function ListFilter(List,mytext){
return List.filter(function(item){
// indexOf()报告指定字符在此实例中的第一个匹配项的索引
// 需要输入字符为首字母时候改'>-1'为'==0'
return item.indexOf(mytext)>-1}
)
}
module.exports = ListFilter
什么是WXS(摘自微信开放文档)
WXS(WeiXin Script)是小程序的一套脚本语言,结合
WXML
,可以构建出页面的结构。
页面代码,搜索框与列表元素美化需自设,通过wx:for遍历列表
代码如下(示例):
tool.wxml(部分)
<!-- wxs函数调用定义好的goodFilter.wxs中的函数,并命名为goodFilter -->
<wxs src="./goodFilter.wxs" module="goodFilter" />
<!-- 输入框为原生组件(微信客户端创建)-->
<!--bind等属性请查看微信开放文档或查看调用函数说明 -->
<input type="text" bindinput="handleinput" bindfocus="handlefocus"
bindblur="handleblur"/>
<!-- 列表内容显示 -->
<view wx:key="goods" wx:if="{{display}}" wx:for="{{goodFilter(goodsList,mytext)}}" bindtap="handletap" data-id="{{index}}">{{item}}</view>
无动作时,js文件中声明了display变量,初始为false,通过wx:if属性控制是否显示列表,当搜索框聚焦和失焦时通过更改display的值实现动态显示列表。
代码如下(示例):
tool.js(部分)
Page({
/**
* 页面的初始数据
*/
data: {
goodsList:["商品1","商品2","商品3","商品4","商品5","商品6"],
mytext:"",
display:false
},
//键盘输入时触发调用的函数
handleinput(ev){
console.log(ev.detail.value)
this.setData({
mytext:ev.detail.value
})
},
//输入框聚焦时触发调用的函数
handlefocus(){
console.log(this.data.display)
this.setData({
display:true
})
},
// 输入框失去焦点时触发调用的函数
handleblur(){
console.log(this.data.display)
this.setData({
display:false
})
},
当输入框输入时,调用handleinput函数获取输入内容,并将列表和输入内容传到wxs文件中定义的函数对列表元素进行模糊查询处理,返回处理后的列表
三、效果展示
无动作时
点击搜索框,搜索框聚焦,display变量值改变
输入1时将只返回包含1的列表元素
(其他值已测试,展示略)
模糊查询成功实现
总结
了解微信小程序原生组件及属性的使用,了解小程序脚本语言WXS的函数调用的方法