add:vue列表功能举例(按条件筛选item)

This commit is contained in:
qianguyihao 2018-05-16 10:24:08 +08:00
parent e8b428dea4
commit 75f64dbc1e

View File

@ -399,6 +399,62 @@ js部分
### 步骤 5按条件筛选item
现在要求实现的效果是,在搜索框输入关键字 keywords列表中仅显示匹配出来的内容。也就是说
- 之前, v-for 中的数据,都是直接从 data 上的list中直接渲染过来的。
- 现在, 我们在使用`v-for`进行遍历显示的时候,不能再遍历全部的 list 了;我们要自定义一个 search 方法同时把keywords作为参数传递给 search 方法。即`v-for="item in search(keywords)"`。
在 search(keywords) 方法中为了获取匹配的item我们可以有两种方式实现。如下。
**方式一:**
```javascript
search(keywords) { // 根据关键字进行数据的搜索返回匹配的item
//实现方式一:通过 indexOf() 进行匹配。
var newList = [];
this.list.forEach(item => {
if (item.name.indexOf(keywords) != -1) {
newList.push(item)
}
})
return newList
}
```
上方代码中, 我们要注意 indexOf(str) 的用法。举例如下:
```javascript
var str = 'smyhvae';
console.log(str.indexOf('s')); //打印结果0
console.log(str.indexOf('')); //打印结果0。说明即使去匹配空字符串也是返回0
console.log(str.indexOf('h')); //打印结果3
console.log(str.indexOf('x')); //打印结果:-1 (说明,匹配不到任何字符串)
```
### 步骤6
在 Vue 1.0版本中,可以通过`filterBy`这个api进行过滤。
如果item是简单数据类型可以这样筛选
@ -427,3 +483,4 @@ js部分