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 相关文章推荐
一个可以兼容IE FF的加为首页与加入收藏实现代码
Nov 02 Javascript
jquery序列化表单以及回调函数的使用示例
Jul 02 Javascript
angularjs ocLazyLoad分步加载js文件实例
Jan 17 Javascript
使用canvas及js简单生成验证码方法
Apr 02 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
Vue组件之自定义事件的功能图解
Feb 01 Javascript
Webpack path与publicPath的区别详解
May 03 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
微信小程序身份证验证方法实现详解
Jun 28 Javascript
微信小程序如何连接Java后台
Aug 08 Javascript
JS 5种遍历对象的方式
Jun 16 Javascript
vue动态合并单元格并添加小计合计功能示例
Nov 26 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
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
[40:04]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
使用python实现ANN
2017/12/20 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
django如何连接已存在数据的数据库
2018/08/14 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Python txt文件如何转换成字典
2020/11/03 Python
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
外语专业毕业生个人的自荐信
2013/11/19 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang