vue过滤器filters获取不到this对象怎么办
短信预约 -IT技能 免费直播动态提醒
本文小编为大家详细介绍“vue过滤器filters获取不到this对象怎么办”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue过滤器filters获取不到this对象怎么办”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
vue过滤器filters获取不到this对象
原理
在data中定义一个属性that,把this存储到that中
在调用filters中的方法sum的时候将that传进去即可
下面举个例子
用filters计算data中 a+b 的值
注意:filters中的sum方法的第一个参数是|左边那个a,第二个参数才是括号写的that
<template> <div>{{a|sum(that)}}</div></template><script> export default { name: "test", data() { return { that: this, a: 1, b: 2 } }, filters: { sum(a, that) { console.log(that); return a + that.b; } }, }</script>
Vue filters this指向问题
Vue实例中filter不依赖于当前vue实例上下文
所以在filter中无法直接访问当前vue实例, 所以可以使用computed替代。
可是当遇到需要根据html文本改变,v-for的数据等情况而改变时,computed的功能就无法满足我们的需求了。
那我们就可以使用methods代替
data: { shopItemType: {}},methods: { shopItemType2str(id){ return this.shopItemType[id]; }}
<tr v-for="shopItem in shopItems"> <td>{{shopItemType2str(shopItem.item_type)}}</td></tr>
读到这里,这篇“vue过滤器filters获取不到this对象怎么办”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341