过滤器可以用在两个地方:
- 双花括号插值
{{message|capitalize}}
- v-bind表达式
<div v-bind:id="rawId|formatId">
在一个组件的选项中定义本地的过滤器:
filters:{
capitalize:function(value){
if(!value) return ''
value=value.toString()
return value.charAt(0).toUpperCase()+value.slice(1)
}
}
创建Vue实例之前全局定义过滤器
Vue.filter('capitalize',function(value){
if(!value) return ''
value=value.charAt(0).toUpperCase()+value.slice(1)
})
new Vue({})
当全局过滤器和局部过滤器重名时,会采用局部过滤器
过滤器总接收表达式的值作为第一个参数,在上述例子中,capitalize过滤器函数将会收到message的值作为第一个参数
过滤器可以串联:
{{message|filterA|filterB}}
在这个例子中,filterA被定义为接收单个参数的过滤器,表达式message的值将作为参数传入到函数中。然后继续调用同样被定义为接收单个参数的过滤器BfilterB,将filterA的结果传递到filterB中
{{message|filterA('arg1','arg2')}}
filterA被定义为接收三个参数的过滤器函数。其中message的值作为第一个参数,普通字符串’arg1’作为第二个参数,表达式drg2的值作为第三个参数