Vue基础——过滤器(有参+无参数)

    科技2022-08-30  95

    vue中的过滤器分为两种:局部过滤器和全局过滤器

    定义无参数全局过滤器(可定义多个) <div>{{msg | upper }}</div> Vue.filter('upper',function(val){ //将字符串的一个字符大写,slice从第一个字符之后截取 return val.charAt(0).toUpperCase()+val.slice(1); }); 定义无参数局部过滤器 <div>{{msg | upper1}}</div> filters:{ upper1:function(val){ return val.charAt(0).toUpperCase()+val.slice(1); } }

    完整示例:将字符串的第一个字符大写

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="vue.js"></script> </head> <body> <div id="app"> <input type="text" v-model="msg" /> <div>{{msg | upper }}</div> <div>{{msg | upper1}}</div> <div>{{msg | lower}}</div> </div> <script type="text/javascript"> //全局过滤器 Vue.filter('upper',function(val){ //将字符串的一个字符大写,slice从第一个字符截取 return val.charAt(0).toUpperCase()+val.slice(1); }); Vue.filter('lower',function(val){ //将字符串的一个字符大写,slice从第一个字符截取 return val.charAt(0).toLowerCase()+val.slice(1); }) var vm = new Vue({ el:"#app", data:{ msg:"" }, //局部过滤器 filters:{ upper1:function(val){ return val.charAt(0).toUpperCase()+val.slice(1); } } }) </script> </body> </html>

    3.定义有参数全局过滤器

    <div>{{date | format('ss')}}</div> Vue.filter("format",function(value,arg){ if(arg=="ss"){ var ret = ''; ret += value.getFullYear()+'-'+ (value.getMonth()+1)+'-'+value.getDate(); return ret; } })

    有参数局部过滤器类似;

    完整示例:过滤时间

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="vue.js"></script> </head> <body> <div id="app"> <div>{{date | format('ss')}}</div> </div> <script type="text/javascript"> Vue.filter("format",function(value,arg){ if(arg=="ss"){ var ret = ''; ret += value.getFullYear()+'-'+ (value.getMonth()+1)+'-'+value.getDate(); return ret; } return value; }) var vm = new Vue({ el:"#app", data:{ date: new Date() } //带参数的过滤器 // filters:{ // format:function(value,arg){ // if(arg=="yyyy-MM-dd"){ // var ret = ''; // ret +=value.getFullYear()+'-'+ (value.getMonth()+1)+value.getData(); // return ret; // } // return value; // } // } }); </script> </body> </html>

    注意: 1、 当有局部和全局两个名称相同的过滤器时候,会以就近原则进行调用,即:局部过滤器优先于全局过滤器被调用! 2、 一个表达式可以使用多个过滤器。过滤器之间需要用管道符“|”隔开。其执行顺序从左往右;

    Processed: 0.016, SQL: 9