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 相关文章推荐
window.onload 加载完毕的问题及解决方案(下)
Jul 09 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
Dec 10 Javascript
jqgrid 表格数据导出实例
Nov 21 Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
Apr 15 Javascript
第十篇BootStrap轮播插件使用详解
Jun 21 Javascript
AngularJS实现路由实例
Feb 12 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
利用百度地图API获取当前位置信息的实例
Nov 06 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
Mar 20 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
微信小程序全局变量改变监听的实现方法
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
PHP中动态HTML的输出技术
2006/10/09 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
iis6+javascript Add an Extension File
2007/06/13 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
详解Vite的新体验
2021/02/22 Javascript
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
用Django写天气预报查询网站
2018/10/21 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
会计岗位职责
2013/11/08 职场文书
毕业设计说明书
2014/05/07 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL