前面是全局的, 所有的 vue 对象都能使用,
如果嫌弃全局丑 ,你自己可以定义一个私有的 。
私有过滤器 包括 过滤器名称 和函数 。
在上节基础上添加一个私有的过滤器 。
var vm2 = new Vue(
{
el: "#p",
data: {
date: new Date(),
},
filters:{
myDateF: function(date){
var date2=new Date(date)
var y=date2.getFullYear()
var m=date2.getMonth()
var d=date2.getDate()
return y+'/'+ m+'/'+d
}
}
}
)
注意 过滤器的选择是就近原则, 当全局和私有同时存在 会选择私有的, 全部的代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" >
<link href="https://cdn.bootcss.com/flat-ui/2.3.0/css/flat-ui.min.css" rel="stylesheet">
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">
</script>
</head>
<body>
<div id="p">
<label>私有过滤器日期</label>
<input type="text" name="" id="" :value="date | myDateF">
</div>
<div id="pp" >
<p >{{msg | myfilter}}</p>
<label>日期</label>
<input type="text" name="" id="" :value="date | myDateF">
</div>
<div>
<script>
Vue.filter("myfilter",function(msg){
return msg.replace("爱情","狗屎")
})
Vue.filter('myDateF',function(date){
var date2=new Date(date)
var y=date2.getFullYear()
var m=date2.getMonth()
var d=date2.getDate()
return y+'-'+ m+'-'+d
}
)
var vm = new Vue(
{
el: "#pp",
data: {
date: new Date(),
msg: "曾经有一段真挚的爱情,摆在我面前,我没有珍惜,现在后悔莫及,如果再遇到这段爱情,我绝对抓住这个爱情"
}
}
)
var vm2 = new Vue(
{
el: "#p",
data: {
date: new Date(),
},
filters:{
myDateF: function(date){
var date2=new Date(date)
var y=date2.getFullYear()
var m=date2.getMonth()
var d=date2.getDate()
return y+'/'+ m+'/'+d
}
}
}
)
</script>
</div>
</body>
</html>
效果如下: