解决vue 局部过滤器获取不到this的问题
更新时间:2022年01月24日 09:46:17 作者:狗狗狗狗亮
这篇文章主要介绍了解决vue 局部过滤器获取不到this的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
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.js实现点击后动态添加class及删除同级class的实现代码
这篇文章主要介绍了vue.js实现点击后动态添加class及删除同级class的相关资料,需要的朋友可以参考下2018-04-04element中el-cascader级联选择器只有最后一级可以多选
本文主要介绍了element中el-cascader级联选择器只有最后一级可以多选,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-01-01
最新评论