VueJS - 我无法在达到所选限制数据之前或之后隐藏阅读更多按钮以在 vuejs 中显示

Posted

技术标签:

【中文标题】VueJS - 我无法在达到所选限制数据之前或之后隐藏阅读更多按钮以在 vuejs 中显示【英文标题】:VueJS - i can't hide readmore button before or after reach the selected limit data to show in vuejs 【发布时间】:2022-01-07 18:39:41 【问题描述】:

我正在使用 vuejs2。尝试在达到值之前或之后隐藏按钮,但我无法获取数据长度以与限制进行比较。我尝试将它重新分配到一个数组中,但仍然无法正常工作,因为长度为 1。知道该怎么做或不同的方法吗?谢谢

export default 
  name: 'SlideEvents',
  props: 
    dataEvents: 
      type: Array,
      default () 
        return []
      
    
  ,
  data () 
    return 
      limit: 6
    
  ,
  components: 
    CardSlide
  ,
  computed: 
    dataFilter () 
      if (this.dataEvents) 
        return this.dataEvents.slice(0, this.limit)
       else 
        return this.dataEvents
      
    
  
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>

<div class="container-fluid more-top">
    <div class="row">
      <div class="col-md-12">
        <div class="card box-simple border-0">
          <h2>Agenda Terbaru</h2>
          <div class="mt-5 mb-5">
            <div class="row row-cols-1 row-cols-md-3 g-5 mt-2 px-4">
            
              <CardSlide class="mb-4" v-for="each in dataFilter"
              :key="each.id"
              :content="each" />
            </div>
            <button @click="limit*=2">Show More</button>
          </div>
        </div>
      </div>
    </div>
  </div>

【问题讨论】:

这可能与您设置属性dataEvents的方式有关。列表中没有要显示的项目吗? 数据显示在列表中,问题是如果该数据小于限制,我无法隐藏按钮。所以我不想将数据长度与 v-if 按钮中的限制进行比较。我将数据克隆到数组,但我只是得到长度为1。原始数据返回是这样的one:value,two:value,three:value ....我已经尝试了所有方式,最后现在用这种方式解决:我直接将数据克隆到 dataFilter 中的数组中: const data = [...this.dataNews] n 也直接在同一个计算中对数据进行排序。然后我可以得到长度并可以与按钮的限制进行比较。谢谢。 :) 【参考方案1】:

要隐藏您的按钮,请使用 v-if 指令。

<button v-if="dataFilter && dataFilter.length < dataEvents.length" @click="limit*=2">Show More</button>

这只会在有事件的情况下显示按钮,并且过滤的事件少于总数。

您也可以使用v-show 指令。

【讨论】:

以上是关于VueJS - 我无法在达到所选限制数据之前或之后隐藏阅读更多按钮以在 vuejs 中显示的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress - 在发布之前从所选类别中排除帖子类型

如何使用 vuejs 获取所选选项的文本?

在加载数据之前触发mounted方法 - VueJS

如何使用 json 原始数据在 vuejs 中制作依赖的第二个列表?

laravel:当计数达到给定值时如何从 foreach 循环中删除选定的数据

在 Vuejs 中渲染 DOM 之前,使用路由器中的参数获取 firebase 数据(使用或不使用 vuefire)?