zoukankan      html  css  js  c++  java
  • vue——过滤器(单个和多个过滤器)

    参考: https://www.cnblogs.com/liujn0829/p/8622960.html
               https://blog.csdn.net/z8735058/article/details/76824548

               https://cn.vuejs.org/v2/guide/filters.html

    一、单个过滤器

      1. 组件中(局部)  

    </template>
        <div>
            <p>{{number| addZero}}</p>
        </div>
    </template>
    
    <script>
         export default {
            filters: {
                addZero(value) {
              if (value > 0 && value < 0.1) {
                  return value;
                }
                var value = Math.round(parseFloat(value) * 100) / 100;
                var arr = value.toString().split('.');
    
                if (arr.length === 1) {
                    return value.toString() + '.0';
                } else {
                 if (arr[1].length === 1) {
                    return value.toString() + '0';
                 } else {
                    return value;
                 }
              }
           } 
        },
        data() {
          
    return {
            number:
    12
          }
        }
      }
    </script>

      2. 全局

      

    Vue.filter('capitalize', function (value) {
      if (!value) return ''
      value = value.toString()
      return value.charAt(0).toUpperCase() + value.slice(1)
    })
    
    new Vue({
      // ...
    })

    二、多个过滤器(全局)

      1. 新建dfilter.js文件
        //可重用方法  过滤器
        const dfilters = {
          addZeroTwo: function(value) {
            if (value > 0 && value < 0.1) {
              return value;
            }
            var value = Math.round(parseFloat(value) * 100) / 100; //一定要用var声明,let会报错
            var arr = value.toString().split('.');
        
            if (arr.length === 1) { //个位数
              return value.toString() + '.00';
            } else {
              if (arr[1].length === 1) { //只有一位小数
                return value.toString() + '0';
              } else {
                return value;
              }
            }
          },
        
          addZeroOne: function(value) {
            if (value > 0 && value < 0.1) {
              return value;
            }
            var value = Math.round(parseFloat(value) * 100) / 100;
            var arr = value.toString().split('.');
        
            if (arr.length === 1) {
              return value.toString() + '.0';
            } else {
              if (arr[1].length === 1) {
                return value.toString() + '0';
              } else {
                return value;
              }
            }
          }
        }
        export default dfilters;
      2. 在main.js中引入并注册(在new Vue前注册)
        import dfilters from '../static/js/dfilters';
        
        for (let key in dfilters) {
            Vue.filter(key, dfilters[key]);
        }
      3. 在组件中使用
        <span>原价:¥{{price|addZeroTwo}}</span>
  • 相关阅读:
    csv大文件分割以及添加表头
    菜鸟装机大杂烩
    CENTOS 基础指令——查看系统环境
    centos使用163 yum源
    MySQL my.cnf参数配置优化详解
    phpcms 实现动态价格
    phpcms模块开发中的小问题及解决方法
    关于v9缓存的那点事
    nvm-windows 手动安装 nvm use 无效 'node' 不是内部或外部命令,也不是可运行的程序
    最新eclipse国内镜像站,比ustc等站点资源新。
  • 原文地址:https://www.cnblogs.com/linjiangxian/p/11454635.html
Copyright © 2011-2022 走看看