我爱吃西瓜喵
2019-03-18 11:28
采纳率: 75%
浏览 1.3k

对表的数据进行过滤,但是过滤器拿不到值?

对表的数据进行过滤,但是过滤器拿不到值

该数据为后面渲染出来的,不是一开始就加载到页面的

<el-table-column align="center" prop="ballotMoney" label="金额">
    {{props.row.money | NumberFilter}}
</el-table-column>
Vue.filter('NumberFilter', function (value) {
    console.log('之前' + value);
    if (!value) return ' '

    var intPart = Number(value).toFixed(0) // 获取整数部分

    var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断

    //console.log('之后' + intPartFormat);
    return intPartFormat

    }

value值拿不到,过滤器没有效果

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • oyljerry 2019-03-18 18:49
    已采纳

    把filter放到computed里面,这样每次变化的时候都可以进行过滤处理

    https://stackoverflow.com/a/47774277/1337961

    已采纳该答案
    打赏 评论
  • 我爱吃西瓜喵 2019-03-25 11:08

    楼上的答案是可以解决的,我这里贴上我自己的解决方法。

    <el-table-column
                    header-align="center"
                    align="right"
                    prop="ballotMoney"
                    label="中签金额"
                    min-width="180px"
                    :formatter="formatterNum"  //通过formatter属性
                  ></el-table-column>
    

    在methods里写这个

    // 格式化金额的封装函数
        formatterNum(row, column, value) {
          if (!value) return "0.00";
          return value.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,");
        }
    

    然后就好啦

    打赏 评论

相关推荐 更多相似问题