【发布时间】:2020-08-06 10:21:02
【问题描述】:
可以选择显示more 文本或less,但@click 事件适用于所有elements,并且所有元素都显示所有文本。
我了解,我需要传递一些值来识别单个元素,该值不适用于所有元素,但目前卡住并会提供帮助。
HTML:
<tr v-for="script in scripts.slice(0, 5)">
<td>{{script.key}}</td>
<td v-if="!readMore">{{script.script_content.substring(0, 200) + ".."}}</td>
<td v-if="readMore">{{script.script_content}}</td>
<button @click="showMore" v-if="!readMore" class="btn btn-primary">Show more</button>
<button @click="showLess" v-if="readMore" class="btn btn-primary">Show less</button>
</tr>
Vue 数据和方法:
data: () => ({
readMore: false,
}),
methods: {
showMore() {
this.readMore = true;
},
showLess() {
this.readMore = false;
},
数组值:
我怎样才能使方法只适用于单个元素?
在这种情况下,不需要创建组件,因为这种情况只会在一个页面上使用。
【问题讨论】:
-
尝试只创建一个
<td>和一个带有toggle()功能onclick 的按钮,用于更改要显示的文本版本,(完整或剪切) -
谢谢。你能用jsfiddle举个例子吗?
标签: javascript html vue.js vuejs2 vue-component