我想使用VueJS 2在鼠标悬停时删除截断过滤器。这是模板中的过滤器:
<div class="eng" @mouseover="showAll">{{ word.english | truncate }}</div>
这是过滤器本身:
filters: {
truncate: function(value) {
let length = 50;
if (value.length <= length) {
return value;
} else {
return value.substring(0, length) + '...';
}
}
},
有没有一种方法可以删除mouseover事件上的过滤器,从而使div不再被截断?谢谢!
编辑:
showAll()
函数是我以为我会删除它的地方。我尝试了几种方法来删除过滤器,例如:showAll(){
console.log('being mousedover');
this.truncate = false
},
和:
showAll(){
console.log('being mousedover');
!this.truncate
}
但这就是我迷路的地方...
最佳答案
将showAll
设为 bool(boolean) 数据属性,并使用template
标记来确定要通过word.english
和v-if
指令显示哪个版本的v-else
:
<div class="eng" @mouseover="showAll = true">
<template v-if="showAll">{{ word.english }}</template>
<template v-else>{{ word.english | truncate }}</template>
</div>
Here's a working fiddle.