vue项目中filter如何获取data中的数据——已解决

 

filter是vue事例的属性过滤器,但是,如果在filter中获取data的数据会发现不存在该数据,为什么呢,查了一下,发现因为filters中的this指的并非vue的实例。如果用this,指向的是全局的this,而不是vue事例。

解决办法:

步骤一:

首先定义一个全局的变量。

<script>
let that
export default {
}
</script>

步骤二:

然后在vue创建前的生命周期钩子函数中将that指向this。 这样做的目的是在vue初始化的时候就让全局中的变量that=this

beforeCreate () {
    that = this
}

image-20200111205124418

步骤三:

然后就可以在filter中通过that访问vue实例了。 而其他的函数访问data中的数据继续使用this不受影响。

filters :{
    filterName(index,value) {
        that.index=index;
        that.value=value;
    }
}

推荐阅读:

本文为博主原创文章,知识共享,开源精神,转载注明出处。