在vue的filters中使用this引用data中的数据

hughe5
  • 79
var vm = new Vue({
      el: '#finance_audit',
      data: {
          dictArr:[{dictId:"JXT_PAYMENT",dictName:"缴费清分匹配"},
              {dictId:"JXT_PAYMENT_D",dictName:"缴费清分取消匹配"},
              {dictId:"JXT_LOAN_MATCH",dictName:"放款清分匹配"},
              {dictId:"JXT_LOAN_MATCH_D",dictName:"放款清分取消匹配"},
              {dictId:"JXT_REPAYMENT_MATCH",dictName:"核心企业付款匹配"},
              {dictId:"JXT_REPAYMENT_MATCH_D",dictName:"核心企业付款取消匹配"}],
          dict:{"JXT_PAYMENT":"缴费清分匹配","JXT_PAYMENT_D":"缴费清分取消匹配",
                  "JXT_LOAN_MATCH":"放款清分匹配","JXT_LOAN_MATCH_D":"放款清分取消匹配",
                  "JXT_REPAYMENT_MATCH":"核心企业付款匹配","JXT_REPAYMENT_MATCH_D":"核心企业付款取消匹配"}
      },
      created: function(){
          this.getApproveList();
      }, 
      filters: {
          filterTxType: function(data){
              return vm.dict[data];
          }
      },
      methods: {

在vue的filters中使用this引用data中的dict对象,为啥使用this.dict[data]不好使,使用vm.dict[data]就好使

回复
阅读 32.5k
3 个回答
✓ 已被采纳

过滤器设计目的是用于文本转换,所以你这么用会有诸多不便,应该用 computed代替。

filter里面不应该跟上下文有关系.
你这种情况可以考虑使用computed啊.

vm变量是哪里来的?

    filters:{
            monthDuration(month){
                return vm.$dayjs.duration(v,'months').humanize()
            } 
        },
宣传栏