vue全局/局部自定义过滤器及其使用

1.全局自定义

  格式化金额为例
<span>{{money | moneyAdd(money,2)}}</span>

Vue.filter('moneyAdd',function(money,decimal){//main.js
    decimal = decimal > 0 && decimal <= 20 ? decimal : 2;
   money = parseFloat((money + '').replace(/[^\d\.-]/g,'')).toFixed(decimal)+'';
   let d= money.split('.')[0].split('').reverse();
   let y=money .split('.')[1];
   let q='';
   for(let i = 0 ; i < d.length ; i++){
      q += d[i] + ((i + 1) % 3 == 0 && (i + 1) != d.length ? ',' : '')
   }
       return q.split('').reverse().join('') + "." + y
   }
})

注释:过滤器可传参数如下

Vue.filter()
参数1:过滤器名称
参数2:过滤器实现的方法 该方法中有2个参数 参数1为需要过滤的数据,参数2为过滤器传递的参数

Vue.filter('toFixed', function (price, limit) {
     return price.toFixed(limit)
})
Vue.filter('toUSD', function (price){
     return `$${price}`
})
let app = new Vue({
    el: '#app',
    data () {
        return {
            price: 435.333
        }
    }
})
<div id="app">
    <h1>
        {{ price | toFixed(2) | toUSD }}
    </h1>
</div>

2.局部定义

filters:{
 //注意局部过滤器是有s的,区别于全局过滤器
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值