【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>