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