学习笔记--过滤器

//根据关键字,进行数据的搜索
//对列表数据遍历 看搜索关键字是否被包含在数据内
search(keywords){
var newlist = [];
this.list.forEach(item =>{
	if(item.name.indexOf(keywords) !=-1) {//不等于-1就是包含在内部数据里
		newList.push(item)
	}
	
})
	return newList

}

‘’(空)的indexOf是0 不是-1,所以包含在搜索数据内。只有-1是不匹配的

forEach some filter findIndex 都是数组的新方法
forEach没有办法中止,some可以通过true来中止 ,filter-进行过滤(把符合条件的返回生成一个新数组);findIndex-找到对应对象的索引

search(keywords){
var newlist = this.list.filter(item =>{

	if(item.name.includes(keywords)){//包含就返回true
	return item
}
})
	return newList
}

过滤器做输出前最后一次的处理,原数据并没有被修改
<p{{ msg | msgFormat }}p> 用msgFormat处理前面的

//定义一个Vue全局的过滤器,名字叫做magFormat
//对msg文本进行局部替换  替换成邪恶
	vue.Filter('msgFormat', function(msg){
	
	return msg.reaplace('单纯''邪恶')
	//直接返回到模板处输出
})

字符串的replace方法,第一个参数也可以写成正则 /单纯/g

也可以<p{{ msg | msgFormat(‘疯狂’,参,参) | 过滤器2 | 过滤器3}}p>
第二个位置进行传参 可以传递多个参数 会组合在一起

vue.Filter('msgFormat', function(msg, arg){
 
 return msg.reaplace('单纯',arg)
 
Vue.filter('dateFormat', function(dateStr, pattern="") {
	var dt = new Date(dateStr)
	var y = dt.getFullYear()
	var m = dt.getMouth() + 1
	var d = dt.getDate()

	if(pattern && pattern.toLowerCase() === 'yyyy-mm-dd') {
	return `${y}-${m}-${d}`  //tab上面的···
}else{	
	var hh = dt.getHours()
	var mm = dt.getMinutes()
	var ss = dt.getSeconds()
return `${y}-${m}-${d} ${hh}-${mm}-${ss}`
}
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值