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

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]就好使

阅读 36.7k
3 个回答

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

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

vm变量是哪里来的?

    filters:{
            monthDuration(month){
                return vm.$dayjs.duration(v,'months').humanize()
            } 
        },
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题