天天看點

vue 過濾器

<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>

繼續閱讀