vue中filters 传入两个参数 / 使用两个filters的实现方法


Posted in Javascript onJuly 15, 2019

先给大家介绍下vue中filters 传入两个参数 / 使用两个filters

.vue

传入两个参数

<van-col>{{第一个参数|formatVisitTime(第二个参数)}}</van-col>

使用两个filters

<van-tag plain :color="item.CreateTime(参数)|formatVisitDate(filters方法)|formatVisitDateColor(filters方法)">{{item.CreateTime|formatVisitDate}}</van-tag>

format.js

export const formatVisitTime = (beginTime, finishTime) => {
  if (!beginTime) {
    return "--";
  }
  if (!finishTime) {
    return formatDateTime(beginTime, 'hh:mm:ss')
  }
  beginTime = new Date(beginTime);
  finishTime = new Date(finishTime);
  let mss = Math.abs(beginTime.getTime() - finishTime.getTime());
  let hours = Math.floor(mss / (1000 * 60 * 60));
  let minutes = Math.floor((mss % (1000 * 60 * 60)) / (1000 * 60));
  return hours + "小时" + minutes + "分钟";
}

.ts

import format from "@/plugins/format";
@Component({
 filters: {
  formatVisitTime(beginTime, finishTime) {
   return format.formatVisitTime(beginTime, finishTime);
  }
 }
})

ps:下面看下Vue 中的 filter 带多参

场景

在 vue 项目中,团队成员在模板中解析一个 json 字符串,然后这个字符串来自于后台,所以是类型不安全,直接用 JSON.parse 就报错了,这里需要用 trycatch 下。

实际是,因为这个解析 json 字符串的方法是纯函数,且经常用在模板中,所以作为 filter 合适,直接拷贝了其他项目的这个方法过来作为 fitlers 用,如下。

// omit other properties
 filters: {
  tryParseJsonString(jsonStr, defaultValue) {
   let ret = defaultValue;
   if (jsonStr) {
    try {
     ret = JSON.parse(jsonStr) || defaultValue;
    } catch (e) {
     console.warn('JSON格式不正确,解析失败', e.message);
    }
   }

   return ret;
  }
 },
// ...

在模板中,可以绑定到 v-bind,使用如下

<template>
 <comp :images="li.value | tryParseJsonString([])" />
</template>

考虑到这个 filter 使用频繁,所以可以封装进全局 mixin,避免频繁的引用。

参考 https://vuejs.org/v2/guide/fi...

总结

以上所述是小编给大家介绍的vue中filters 传入两个参数 / 使用两个filters的实现方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 Javascript
jquery插件制作 表单验证实现代码
Aug 17 Javascript
JavaScript极简入门教程(二):对象和函数
Oct 25 Javascript
jQuery实现鼠标点击弹出渐变层的方法
Jul 09 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
微信小程序 开发指南详解
Sep 27 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
Nov 29 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
JS中的继承操作实例总结
Jun 06 Javascript
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
微信小程序全局变量改变监听的实现方法
Jul 15 #Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
Jul 15 #Javascript
微信小程序如何使用canvas二维码保存至手机相册
Jul 15 #Javascript
如何给element添加一个抽屉组件的方法步骤
Jul 14 #Javascript
详解vuex的简单todolist例子
Jul 14 #Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 #Javascript
微信小程序解析富文本过程详解
Jul 13 #Javascript
You might like
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP多线程类及用法实例
2014/12/03 PHP
php7 新增功能实例总结
2020/05/25 PHP
PHP 实现链式操作
2021/03/09 PHP
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
python实现五子棋程序
2020/04/24 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
美容院合作经营协议书
2014/10/10 职场文书
小学重阳节活动总结
2015/03/24 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
2015团员个人年度总结
2015/11/24 职场文书
社区结对共建协议书
2016/03/23 职场文书
golang中的空接口使用详解
2021/03/30 Python
详解Django中 render() 函数的使用方法
2021/04/22 Python
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
PHP设计模式(观察者模式)
2021/07/07 PHP
MySQL分布式恢复进阶
2022/07/23 MySQL