【VUE】过滤器的使用,管道符号' | '

1.vue过滤器的使用,常用于多文本数据的格式化

<!-- 在双花括号中 -->
{{ message | capitalize }}
{{ 数据 | 过滤器 }}
  • 过滤器函数接收表达式的值 (之前的操作链的结果) 作为第一个参数

  • 过滤器可以传递参数

{{ message | filter('type1', type2) }}

message将作为第一个参数传递给过滤器,'type1', type2,依次作为第二个 第三个参数
  • 过滤器可以串联

{{ message | filterA | filterB }}

message的返回传入filterA, 处理结果作为参数继续传入filterB 

2.vue实例

  • 金额的格式化:保留两位0
 1  let formatMoney = (value, type) => {
 2     let moneyStr = '';
 3     if (isNan(Number(value))) {
 4         return false
 5     }
 6     if (value) {
 7       value = parseFloat(value).toFixed(2).split('.');
 8     } else {
 9       value = ['0', '00']
10     }
11     if (type === 'integer') {
12       moneyStr = '¥ ' + value[0];
13    } else if (type === 'float') {
14      moneyStr = value[1];
15    } else if (type === 'noIcon') {
16      moneyStr = value[0] + '.' + value[1];
17    } else {
18      moneyStr = '¥ ' + value[0] + '.' + value[1];
19    }
20    return moneyStr;
21  }
  • 数据处理,有数据取数据,没有‘--‘展示
1 let filter = (value) => {
2   let flag;
3   flag = !value ? '--' : value
4   return flag
5 }
  • 从js文件中将两个过滤器暴露出去
1 export default {
2   filter,
3   formatMoney
4 }
  • 在main.js中引入:
import filter from './filters/index';
  • 使用:

  获取到数据unitmount,作为参数传给filter ----> 有值就使用原来的值,没有的话展示为空  ----->  处理后的数据继续格式化,保留两位0

1             <el-table-column
2               prop="unitamount"
3               min-width="150px"
4               label="保险金额(元)"
5               align="right">
6               <template slot-scope="scope">
7                 <span>{{ scope.row.unitamount | filter  | formatMoney('noIcon') }}</span>
8               </template>
9             </el-table-column>

 

posted @ 2021-03-16 11:22  行屰  阅读(2857)  评论(1编辑  收藏  举报