vue中引入公用过滤器?

比如我们封装一个金钱的过滤器:

 

不废话,直接上代码

 

在main.js平级新建filter文件夹,里面新建index.js和money.js

 

index.js

import {
    moneyP
} from './money'

export default moneyP;

注意这里不要用module.exports导出了,会报错。

// module.exports = {
//     normalTime
// }

money.js里面

function fmoney(s){   
    let n = 2;
    n = n > 0 && n <= 20 ? n : 2;   
    s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";   
    var l = s.split(".")[0].split("").reverse(),   
    r = s.split(".")[1];   
    let t = "";   
    for(let i = 0; i < l.length; i ++ )   
    {   
       t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");   
    }   
    return t.split("").reverse().join("") + "." + r;   
 } 
 
export const moneyP = (num) => {
    if(num == 0) {
        let outnum = '0.00'
        return outnum;
    } else {
        if(num != '') {
            if(num < 0) {
                let outnum = fmoney(-num)
                return '-' + outnum
            } else {
                let outnum = fmoney(num)
                return outnum
            }
        }
    }
}

在main.js里面引入:

//引入过滤器
import filters from './filter'
Vue.filter('moneyP',filters)

//Vue.filter(名字,函数)

使用时候在你的组件中直接用就可以了

 <div>{{numTotal | moneyP}}元</div>

扫码加群,每日更新一篇前端技术文章一起成长。

 

 

posted on 2020-03-22 13:11  前端架构师  阅读(1162)  评论(0编辑  收藏  举报

导航

  • !