vue笔记之 filterts的几种用法

先上一段代码:

   <div class="test">
            <p>{{msg | sum}}</p>
            <p>{{msg | cal 10 20}}</p>  <!--过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算。-->
            <p>{{msg | sum | currency }}</p> <!--添加两个过滤器,注意不要冲突-->
 
            <input type="text" v-model="msg | 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: {
                    msg:12
                },
                filters: {
                    sum: function (value) {
                        return value + 4;
                    },
                    cal: function (value, begin, xing) {
                        return value + begin + xing;
                    }
                }
            });
 
        </script>

=================================================================================

注册在全局的fliter

(1)全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面 
(2) 过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算 
(3)可以设置两个过滤器参数,前提是这两个过滤器处理的不冲突 
(4)用户从input输入的数据在回传到model之前也可以先处理
(5)filter是默认会传入当前的item,而且filter的第一个参数默认就是当前的item。 

注册在实例化内部

仅在使用它的实例里面注册

1.在html中使用
{{ msg | filter('arg1','arg2') }}
// msg对应函数中的第一个参数data,arg1为第二个参数,类推

过滤器可以串联:

  {{ msg | filterA | filterB}}
2.methods中使用,并传参
  methods:{
    fn(){
        let filter = this.$options.filters['filter']
        let data = filter(this.msg,arg1,arg2)
    }
  }
3.在v-html中使用filters
  <p v-html="$options.filters.filter(this.msg,arg1,arg2)"></p>
发布了15 篇原创文章 · 获赞 2 · 访问量 414

猜你喜欢

转载自blog.csdn.net/goUp_self/article/details/102461123