我正在构建一个小应用程序,Vuejs 2.0我有大约15个迭代元素,我想限制v-for只有5个元素,并且可以有更多的按钮来显示整个列表.有可能吗?
Anh*_*yen 97
您可以尝试此代码
<div v-if="showLess">
<div v-for="value in array.slice(0, 5)"></div>
</div>
<div v-else>
<div v-for="value in array"></div>
</div>
<button @click="showLess = false"></button>
Run Code Online (Sandbox Code Playgroud)
新数组中只有5个元素.
更新:微小的更改使该解决方案适用于阵列和对象
<div v-if="showLess">
<div v-for="(value,index) in object" v-if="index <= 5"></div>
</div>
<div v-else>
<div v-for="value in object"></div>
</div>
<button @click="showLess = false"></button>
Run Code Online (Sandbox Code Playgroud)
小智 8
我来晚了吗 您可以使用计算的属性解决此问题:
<div v-for="value in computedObj">{{value}}</div>
<button @click="limit = null">Shore more</button>
Run Code Online (Sandbox Code Playgroud)
然后在您的数据中:
data(){
return {
object:[], // your original data
limit: 5 // or any number you wish to limit to
}
}
Run Code Online (Sandbox Code Playgroud)
最后是您的计算属性:
computed:{
computedObj(){
return this.limit ? this.object.slice(0,this.limit) : this.object
}
}
Run Code Online (Sandbox Code Playgroud)
当您单击按钮时,将清除限制,并显示/返回整个数据
你可以试试这个解决方案......
<div class="body-table div-table" v-for="(item,index) in items" :key="item.id" v-if="items && items.length > 0 && index <= limitationList">....
Run Code Online (Sandbox Code Playgroud)
并设置数据限制
data() {
return {
limitationList:5
};
},
Run Code Online (Sandbox Code Playgroud)
并在你的btn中设置一个功能
<button @click="updateLimitation(limitationList)">
show {{limitationList == 5 ? 'more' : 'less'}}
</button>
Run Code Online (Sandbox Code Playgroud)
这是你的方法
updateLimitation(limitationList){
if (this.limitationList == this.items.length) {
this.limitationList = 5
}else{
this.limitationList = this.items.length
}
}
Run Code Online (Sandbox Code Playgroud)
我希望对你有用......
| 归档时间: |
|
| 查看次数: |
39363 次 |
| 最近记录: |