<body>
<div id="app">
<input type="text" v-model="money">
<!-- 有時在頁面上渲染的資料需要進行一定的加工,例如需要四舍五入,格式轉換等,在vue中推薦的做法是使用過濾器 -->
<!-- 過濾器使用格式:{{資料|過濾器}} -->
<p>{{money|rounding|seperate|currency}}</p>
<!-- 差別 任何一個值換一種寫法 -->
</div>
<script src="vue.js"></script>
<script>
// vue中沒有自帶的過濾器,必須自己建立過濾器。
// 建立過濾器有兩種方法:全局注冊過濾器,局部過濾器。
// 全局注冊的過濾器可以在項目中任何地方使用
// 在某個元件中局部注冊的過濾器隻能在這個元件的模闆中使用。
// Vue.filter方法,用于全局注冊一個過濾器,第一個參數是過濾器名字,第二個參數是過濾器函數。過濾函數接受需要過濾的值為參數,傳回過濾之後的值。
// 全局注冊過濾器必須在根元件之前。
Vue.filter("currency", function (v, c) {
if (c)
return c + v;
return "¥" + v;
});
new Vue({
el: "#app",
data: {
money: 0,
},
methods: {
// filter用于在本元件中注冊過濾器,在某個元件中局部注冊的過濾器,隻能在這個元件的模闆中使用,類型是一個對象,對象中鍵是一個過濾器名字,值是過濾函數。
filters: {
rounding(v) {
if (v == null || v == undefined||v=="") {
return null;
}
return v.toFixed(2);
},
seperate(v) {
let str="v";
let count=0;
for(let i=str.length-4;i>=0;i--){
count++;
if(count==3&&i!=0){
count=0;
let arr=str.split("");
arr.splice(i,0,",");
str=arr.json("");
}
return str;
}
})
function n(num) {
var str = "" + num;
var arr = str.split("");
console.log(arr)
for (var i = arr.length - 3; i > 0; i -= 3) {
console.log(i)
arr.splice(i, 0, ",");
return arr.join("");
}
// console.log(n(123456789))
</script>
</body>