欢迎来到代码驿站!

vue

当前位置:首页 > 网页前端 > vue

解决vue 局部过滤器获取不到this的问题

时间:2022-06-22 09:38:33|栏目:vue|点击:

vue 局部过滤器获取不到this

data里面加个字段赋值this。


在这里插入图片描述

<el-table-column property="sendLab" label="项目流向" width="*">
  <template slot-scope="scope">
    <span>
      {{ scope.row.sendLab | formataLab(that) }}
    </span>
  </template>
</el-table-column>

这里用的element table , 在过滤器里传入参数,that。


在这里插入图片描述


就可以获取到data里的变量了。

vue filters为什么获取不到this

问题

<div>{{auditResult | auditResultNameFilter}}</div>
data() {
  return {
      auditResultOptions: [...]
  }  
},
filters: {
    auditResultNameFilter(status) {
      let [obj] = this.auditResultOptions.filter(item => item.value === status);
      return obj.name;
    }
},

上面会出现报错

原因

关于这个问题尤大有讲

【this undefined in filters #5998】https://github.com/vuejs/vue/issues/5998

在这里插入图片描述

解决方法

我们可以用下面这种写法、或者用计算属性跟方法都行,比如下面这种

<div>{{auditResult | auditResultNameFilter(auditResultOptions)}}</div>
filters: {
    auditResultNameFilter(status, auditResultOptions) {
      let [obj] = auditResultOptions.filter(item => item.value === status);
      return obj.name;
    }
},

上一篇:vue-video-player 播放m3u8视频流的实现

栏    目:vue

下一篇:基于Vue中this.$options.data()的this指向问题

本文标题:解决vue 局部过滤器获取不到this的问题

本文地址:http://www.codeinn.net/misctech/205581.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有