VUE使用filters过滤数据/格式化数据

过滤表格数据

使用自己写的过滤函数

  • table中
    :data="filterData(tableData,search)"
    在forEach 里面 return 不会终止循环,在some 里面 遇到 return true 就是终止遍历 效率更高
  • methods:
    filterData(data,search) {
      var input = searchContent.toLowerCase()
      var items = data;
      var itemsNew;
      if (input) {
        itemsNew = items.filter(function(item) {
          return Object.keys(item).some(function(key1) {
            return String(item[key1])
              .toLowerCase()
              .match(input);
          });
        });
      } else {
        itemsNew = items;
      }
      return itemsNew;
    },

使用VUE的filters

  • table中
    :data="tableData|filterData"

    :data="tableData|filterData(search)"
  • 申明全局变量that,为了能拿到this.search,在beforeCreate中改变 that = this
import {
  overlayByStation,
  updateOverlayStatus
} from "../../api/api";
let that;
export default {
  name: 'overlayDetails',
  data () {
},
...
  beforeCreate(){
    that = this
  },
  created () {
  ...
  }
...
  • 编写过滤函数
  },
  filters:{
  //若直接传递参数应使用filterData(data,search)
    filterData(data) {
    	//若直接传递参数应使用var input = search
	     var input = that.searchContent
	     if(input){
	     	input = input.toLowerCase()
	     }
	     var items = data;
	     var itemsNew;
	     if (input) {
	       itemsNew = items.filter(function(item) {
	         return Object.keys(item).some(function(key1) {
	           return String(item[key1])
	             .toLowerCase()
	             .match(input);
	         });
	       });
	     } else {
	       itemsNew = items;
	     }
	     return itemsNew;
	   }
  },
  methods: {
  ···
  }

使用filters格式化数据

  • 安装moment:
    npm install moment
  • import
    import Moment from 'moment'

格式化之前
Wed Dec 01 2021 13:53:44 GMT+0800 (中国标准时间)

  • 格式化
<span> {{mytime|format}} </span>

2021-12-01 13:53:44

  • fliters:
  filters:{
    format(data){
      return Moment(data).format('YYYY-MM-DD HH:mm:ss')
    },
    ···
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值