Vue过滤器的用法和自定义过滤器使用
时间:2021-02-18 11:22:08|栏目:vue|点击: 次
1、过滤器的用法,用 ‘|' 分割表达式和过滤器。
例如:{{ msg | filter}} {{msg | filter(a)}} a就标识filter的一个参数。
用两个过滤器:{{msg | myfilter | myfilternumber }}
2、自定义的过滤器
过滤器的结构为:Vue.filter("id",function(value,a){});
value是过滤器的一个参数,也是默认的原始值。a是自定义的一个参数。
自定义过滤器的例子:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="vue.js"></script> <style> </style> </head> <body> <div id="app"> <!--输出的字符串中a的个数--> <span>msg的值:{{msg}},其中a的个数:</span> {{msg | myfilter('a')}} <br> <!--输出的字符串中b的个数--> <span>msg的值:{{msg}},其中b的个数:</span> {{msg | myfilter | myfilternumber}} </div> </body> <script type="text/javascript"> Vue.filter("myfilter", function(value, arg) { //返回一个对象或者json字符串,列出字符串中的字符以及字符的个数,不区分大小写 var obj = {}; var s = value.split('').sort().join(""); var reg = /(.)\1+/ig; var str = s.replace(reg, "$1"); //字符串去重后的结果 var i = 0, n, a; while (s.length > 0) { a = str.charAt(i); n = s.lastIndexOf(a) + 1; obj[a] = n; s = s.substring(n); i++; } return arg ? obj[arg] : obj; }); Vue.filter("myfilternumber", function(value) { return value.b; }); var app1 = new Vue({ el: "#app", data: { msg: "a1a1aba2babac" }, methods: { } }); </script> </html>