vue自定義過濾器的建立和使用
阿新 • • 發佈:2018-12-12
過濾器的作用:實現資料的篩選、過濾、格式化。
vue1.*版本是有內建的過濾器,但是在vue2.*所有的版本都已經沒有自帶的過濾器了。
1、過濾器建立 過濾器的本質 是一個有引數 有返回值的方法 new Vue({ filters:{ myCurrency:function(myInput){ return 處理後的資料 } } })
2、過濾器使用 語法: <any>{{表示式 | 過濾器}}</any> 舉個例子: <h1>{{price | myCurrency}}</h1>
3、過濾器高階用法
在使用過濾器的時候,還可以指定引數,來告訴過濾器按照引數進行資料的過濾。
①如何給過濾器傳參? <h1>{{price | myCurrency('¥',true)}}</h1> ②如何在過濾器中接收到? new Vue({ filters:{ //myInput是通過管道傳來的資料 //arg1在呼叫過濾器時在圓括號中第一個引數 //arg2在呼叫過濾器時在圓括號中第二個引數 myCurrency:function(myInput,arg1,arg2){ return 處理後的資料 }
}
})
Demo:金額千分位格式化
<span>總消費: {{MoneyList.consumeMoney | moneyToPoint(MoneyList.consumeMoney,2)}}</span>
filters:{ moneyToPoint:function(s,n){ n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ""; let 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; } }