如下图需求,项目中出现比较多,数据都是后台返回的,由此我在vue项目中写了过滤器,结合标签的title属性,实现该效果 ,此处自己写的一个小demo
难点:数据后台返回,title属性要将key,value如下图拼接,通常像这种拼接,我都是用“+”进行的,但是value值是过滤器返回的,因此以往的方法就行不通。
解决历程:
阶段1:普通方法进行拼接,像这种写法:title="‘name’ + ‘:’ + (message | formatIdA)" 是行不通的,
直接报错
阶段2:我去vue官方文档看了看关于过滤器的内容,它给出的相关用法:
但是这些用法解决不了我的需求。
阶段3:我去百度了一下,发现了一种写法,就是传参。将我们想拼接的数据作为参数传进filter方法,在filte方法中将你想要的数据格式return,就大功告成。
之后我想了一下:过滤器本来就是我们对数据处理的一种方法,既然是方法我们就可以当成普通方法使用,进行传参。
问题解决后的思考:vue文档中给我展示的指令中调用filter方法的写法是 rawId | formatId ,formatId 方法是将rawId作为它的将要处理的对象,也就可以理解我们普通方法中传入的参数。之后我又尝试了其他的写法:
例如1:定义两个filter方法 formatIdA,formatIdB,被处理数据 rawId
写法:rawId | formatIdA | formatIdB,按从左至右的理解,rawId 作为formatIdA 的参数,rawId | formatIdA整体作为formatIdB的参数。执行之后这种写法完全可以
分享一下,要是帮到大家,给我一个小赞赞哟