filters的this问题

filters的this问题 =》 》》 https://github.com/vuejs/vue/issues/5998

 

有时候我们在使用vue中的过滤器filters方法时,用到this时会报undefined错,那是因为在filters中的this指向其实是为undefined,如果真的想使用可以全局定义一个that, 进行代替,let that = this; 那是因为当初为了设计过滤器filters更偏重于对文本数据的转化,如果使用上下文中的this,可以使用计算属性computed或者方法methods。

这在2.x中是有意的。过滤器应该是纯函数,并且不应依赖于this上下文。如果需要,this您应该使用计算属性或仅使用方法,例如$translate(foo)

 
@yobyzal
 
 

约比扎尔 已评论 on 13 Jul 2017

您可以将其this用作过滤器功能的参数。

另外,我认为最好支持this可以利用pipe样式的上下文

例如,如果我们有fn1,fn2和fn3,并且这样的代码{{ somevalue | fn1| fn2 | fn3 }}比更加清晰和简单{{ fn3(fn2(fn1(somevalue))) }}

posted @ 2021-02-05 09:11  Mandy么么  阅读(269)  评论(0编辑  收藏  举报