Vue自定义过滤器
来源:互联网 发布:万人非你知乎 编辑:程序博客网 时间:2024/06/07 07:38
经过本人测试,以下过滤器的自定义过程在vue.js1.0中是完全兼容的,但是在vue.js2.0中,我目前发现的是其中的双向过滤器(里面用了read和write的用法)是无法使用的。
gitHub地址: https://github.com/manlili/vue_learn里面的lesson05
一 自定义过滤器(注册在Vue全局)
注意事项:
(1)全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面
(2) 过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算
(3)可以设置两个过滤器参数,前提是这两个过滤器处理的不冲突
(4)用户从input输入的数据在回传到model之前也可以先处理
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>vue自定义过滤器</title> <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> </head> <body> <div class="test"> <p>{{message | sum}}</p> <p>{{message | cal 10 20}}</p> <!--过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算。--> <p>{{message | sum | currency }}</p> <!--添加两个过滤器,注意不要冲突--> <input type="text" v-model="message | change"> <!--用户从input输入的数据在回传到model之前也可以先处理--> </div> <script type="text/javascript"> // -----------------------------------------华丽分割线(从model->view)--------------------------------------- Vue.filter("sum", function(value) { //全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面 return value + 4; }); Vue.filter('cal', function (value, begin, xing) { //全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面 return value + begin + xing; });// -----------------------------------------华丽分割线(从view->model)--------------------------------------- Vue.filter("change", { read: function (value) { // model -> view 在更新 `<input>` 元素之前格式化值 return value; }, write: function (newVal,oldVal) { // view -> model 在写回数据之前格式化值 console.log("newVal:"+newVal); console.log("oldVal:"+oldVal); return newVal; } }); var myVue = new Vue({ el: ".test", data: { message:12 } }); </script> </body></html>
二 自定义过滤器(注册在实例化内部)
上面的例子直接注册在Vue全局上面,其他不用这个过滤器的实例也会被迫接受,其实过滤器可以注册在实例内部,仅在使用它的实例里面注册
上面的程序改写为:
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>vue自定义过滤器</title> <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> </head> <body> <div class="test"> <p>{{message | sum}}</p> <p>{{message | cal 10 20}}</p> <!--过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算。--> <p>{{message | sum | currency }}</p> <!--添加两个过滤器,注意不要冲突--> <input type="text" v-model="message | change"> <!--用户从input输入的数据在回传到model之前也可以先处理--> </div> <script type="text/javascript"> Vue.filter("change", { read: function (value) { // model -> view 在更新 `<input>` 元素之前格式化值 return value; }, write: function (newVal,oldVal) { // view -> model 在写回数据之前格式化值 console.log("newVal:"+newVal); console.log("oldVal:"+oldVal); return newVal; } }); var myVue = new Vue({ el: ".test", data: { message:12 }, filters: { sum: function (value) { return value + 4; }, cal: function (value, begin, xing) { return value + begin + xing; } } }); </script> </body></html>
阅读全文
0 0
- Vue过滤器和自定义过滤器
- Vue自定义过滤器
- Vue自定义过滤器
- Vue---自定义过滤器
- Vue自定义过滤器
- Vue之自定义过滤器
- vue自定义过滤器
- vue 2.0 自定义过滤器
- vue.js2.0自定义过滤器
- VUE自定义过滤器(注册在Vue全局)
- vue--购物车+计算价格+自定义过滤器
- vue 过滤器和自定义指令、组件
- Vue.js学习 Item14 – 过滤器与自定义过滤器
- vue内置指令、自定义指令及自定义过滤器
- Vue--过滤器
- Vue 过滤器
- vue过滤器
- vue过滤器
- 交叉开发工具的使用
- 莫名其妙装好了oh-my-zsh
- orabbix 模板部分监控项取不到数据
- 刷题记录-codevs1553 互斥的数
- mysql for update 使用说明
- Vue自定义过滤器
- Linux for循环之列表for循环
- 二叉树的按层遍历并实现换行
- 汽车OS 大战背后:关于制造商、谷歌、安卓和 Android Auto,QNX
- pycharm代码的调试何运行
- java并发编程:volatile 关键字解析
- pip安装whl文件及tensorflow安装
- 读取外部XX.Proper文件内的信息
- 嵌入式设备系统的烧写过程