zoukankan      html  css  js  c++  java
  • vue2 v-model/v-text 中使用过滤器的方法示例

    Vue.js 允许自定义过滤器,一般可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:

    1
    2
    3
    4
    5
    <!-- 在双花括号中 -->
    {{ message | capitalize }}
     
    <!-- 在 v-bind 中 -->
    <div v-bind:id="rawId | formatId"></div>

    可以在一个组件的选项中定义私有的过滤器:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    filters: {
      dateFormat: (dataStr) => {
       var time = new Date(dataStr);
       
       function timeAdd0(str) {
        if (str < 10) {
         str = '0' + str;
        }
        return str
       }
       var y = time.getFullYear();
       var m = time.getMonth() + 1;
       var d = time.getDate();
       var h = time.getHours();
       var mm = time.getMinutes();
       var s = time.getSeconds();
       return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' ' + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);
      }
    }

    或者在创建 Vue 实例之前全局定义过滤器:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Vue.filter('dateFormat', (dataStr) => {
     var time = new Date(dataStr);
     
     function timeAdd0(str) {
      if (str < 10) {
       str = '0' + str;
      }
      return str
     }
     var y = time.getFullYear();
     var m = time.getMonth() + 1;
     var d = time.getDate();
     var h = time.getHours();
     var mm = time.getMinutes();
     var s = time.getSeconds();
     return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' ' + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);
    })

    但是如果想要在v-model或者v-text中使用过滤器是不生效的,可以参考以下写法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <template>
     <div id="app">
      <input type="text" v-model="userDate" /> 
      <span>{{ userDate | dateFormat }}</span>
     </div>
    </template>
     
    <script>
    export default {
      data: {
        return {
          userDate:'',
        }
      },
        filters: {
        dateFormat: (dataStr) => {
         var time = new Date(dataStr);
         
         function timeAdd0(str) {
          if (str < 10) {
           str = '0' + str;
          }
          return str
         }
         var y = time.getFullYear();
         var m = time.getMonth() + 1;
         var d = time.getDate();
         var h = time.getHours();
         var mm = time.getMinutes();
         var s = time.getSeconds();
         return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' ' + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);
        }
      }
    }
    </script>
     
    <style>
    </style>
  • 相关阅读:
    逻辑地址、线性地址、物理地址
    查找已知字符串子串
    替换字符串中的空格为%20
    资本的奥秘
    net::ERR_CONNECTION_RESET的处理方法
    SQL Server数据库从低版本向高版本复制数据库
    中式思维的五大逻辑缺陷(转)
    1年PK12年,中国式教育完败(转载)
    有关衣服的想法
    jquery邮箱自动补全
  • 原文地址:https://www.cnblogs.com/fiona383/p/10841651.html
Copyright © 2011-2022 走看看