如何在列表上设置Vuetify分页

时间:2019-10-17 16:03:21

标签: vue.js vuetify.js

使用vuetify,我试图在<v-pagination>上设置<v-list-item>,但看不到如何将我的商品(通知中的n)绑定到分页。需要额外的功能吗?我发现的大多数文档都是关于vuetify表的。

<template>
  <div>
    <v-card
         class="mx-auto"
         max-width="300"
         tile
    >
      <v-list rounded>
        <v-subheader>NOTIFICATIONS</v-subheader>
        <v-list-item-group color="primary">
          <v-list-item
               v-for="(n, i) in notification"
               :key="i"
          >
            <v-list-item-content>
              <v-list-item-title v-text="n.payload"></v-list-item-title>
            </v-list-item-content>
          </v-list-item>
          <v-pagination
               v-if="pages > 1"
               v-model="pagination.page"
               :length="pages"
          ></v-pagination>
        </v-list-item-group>
      </v-list>
    </v-card>
  </div>
</template>

<script>
    export default {
        name: "status",

      data() {
        return {
          pagination: {
              page: 1,
              total: 0,
              perPage: 0,
              visible: 3
          },
          notification: [],
        }
      },
      computed: {
        pages () {
            Math.ceil(this.notification.length / 3)
        }
      }
    }
</script>

如何设置按页面显示的项目数?

1 个答案:

答案 0 :(得分:1)

您可以使用分页组件的v模型获取要显示的项目列表。

这是一个例子

<div id="app">
  <v-app id="inspire">
    <div class="text-center">
      {{ visiblePages }}
      <v-pagination
        v-model="page"
        :length="Math.ceil(pages.length/perPage)"
      ></v-pagination>
    </div>
  </v-app>
</div>
new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data () {
    return {
      page: 1,
      perPage: 4,
      pages: [0,1,2,3,4,5,6,7,8,9,10,11,12,13]
    }
  },
  computed: {
    visiblePages () {
      return this.pages.slice((this.page - 1)* this.perPage, this.page* this.perPage)
    }
  }
})

https://codepen.io/scorch/pen/RwwGKrQ

然后您可以将visiblePages传递到您的项目列表。