我想使用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.englishv-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.

09-25 18:30