VueJs如何使用限制器和范围进行分页?

b4dQuetions:

我有这样的代码:

var demoList = new Vue({
  el: '#demoList',
  data: {
    items: [{
      "id": 1,
      "name": "Tom"
    }, {
      "id": 2,
      "name": "Kate"
    }, {
      "id": 3,
      "name": "Jack"
    }, {
      "id": 4,
      "name": "Jill"
    }, {
      "id": 5,
      "name": "aa"
    }, {
      "id": 6,
      "name": "bb"
    }, {
      "id": 7,
      "name": "cc"
    }, {
      "id": 8,
      "name": "dd"
    }, {
      "id": 1,
      "name": "Tom"
    }, {
      "id": 2,
      "name": "Kate"
    }, {
      "id": 3,
      "name": "Jack"
    }, {
      "id": 4,
      "name": "Jill"
    }, {
      "id": 5,
      "name": "aa"
    }, {
      "id": 6,
      "name": "bb"
    }, {
      "id": 7,
      "name": "cc"
    }, {
      "id": 8,
      "name": "dd"
    }, ],
    loading: false,
    order: 1,
    searchText: null,
    ccn: null,
    currentPage: 0,
    itemsPerPage: 2,
    resultCount: 0
  },
  computed: {
    totalPages: function() {
      console.log(Math.ceil(this.resultCount / this.itemsPerPage) + "totalPages");
      return Math.ceil(this.resultCount / this.itemsPerPage);

    }
  },
  methods: {
    setPage: function(pageNumber) {
      this.currentPage = pageNumber;
      console.log(pageNumber);
    }
  },
  filters: {
    paginate: function(list) {
      this.resultCount = this.items.length;
      console.log(this.resultCount + " Result count");
      console.log(this.currentPage + " current page");
      console.log(this.itemsPerPage + " items per page");
      console.log(this.totalPages + " Total pages 2");
      if (this.currentPage >= this.totalPages) {
        this.currentPage = Math.max(0, this.totalPages - 1);
      }
      var index = this.currentPage * this.itemsPerPage;
      console.log(index + " index");
      console.log(this.items.slice(index, index + this.itemsPerPage));
      return this.items.slice(index, index + this.itemsPerPage);
    }
  }
});
a {
  color: #999;
}
.current {
  color: red;
}
ul {
  padding: 0;
  list-style-type: none;
}
li {
  display: inline;
  margin: 5px 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.16/vue.js"></script>
<div id="demoList">
  <div class="containerTable">
    <table class="table">
      <thead>
        <tr class="header">
          <th>
            <div><a @click="sortvia('provider_name')">Provider</a>
            </div>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="item in items | paginate">
          <td>{{item.name}}</td>
        </tr>
      </tbody>
    </table>
  </div>
  <ul>
    <li v-for="pageNumber in totalPages">
      <a href="#" @click="setPage(pageNumber)">{{ pageNumber+1 }}</a>
    </li>
  </ul>
</div>

我一直试图用vuejs创建一个寻呼机,所以我想知道是否有人可以指定一个示例来制作这样的寻呼机,如果可能的话是“ 1-2-3-4-5 ... 55” ??,谢谢再次寻求任何帮助。

杰夫:

查看以下代码:

https://jsfiddle.net/os7hp1cy/48/

的HTML:

<ul>
    <li v-for="pageNumber in totalPages" 
        v-if="Math.abs(pageNumber - currentPage) < 3 || pageNumber == totalPages - 1 || pageNumber == 0">
    <a href="#" @click="setPage(pageNumber)"  
       :class="{current: currentPage === pageNumber, last: (pageNumber == totalPages - 1 && Math.abs(pageNumber - currentPage) > 3), first:(pageNumber == 0 && Math.abs(pageNumber - currentPage) > 3)}">
       {{ pageNumber+1 }}</a>
    </li>
</ul>

CSS:

a.first::after {
  content:'...'
}

a.last::before {
  content:'...'
}

基本上,它仅显示当前页面2页内的分页。然后,它还将显示第1页和最后一页,并"..."在CSS编号之前或之后显示。因此,如果您在第10页上,它将显示:

1... 8 9 10 11 12 ...21

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Envoy 中配置本地速率限制器?

如何使用查询限制,偏移量和jquery数据表进行分页?

对通道使用rate.NewLimiter速率限制器

承诺使用速率限制器的回调

如何使用Vuejs进行适当的分页?设置器未定义错误

使用VueJS进行表分页

如何使用Novell.Directory.Ldap.NETStandard和“简单分页结果”控件在Ldap服务器上进行分页搜索?

如何限制redactor限制器插件上的最大字符?

在Laravel中禁用速率限制器?

pygame中的射速限制器问题

Redis速率限制器模式

为 Unity 编写 FPS 限制器

目录树列表限制器 Python

警告:session_start():无法发送会话缓存限制器 - 即使在使用 session_start() 和 ob_start() 后,标头也已发送

我如何为数据库表设置两个限制器

如何在 vuejs 中进行分页

ORA-01652为什么未使用的行限制器可以解决此问题?

使用 express-rate-limit 為單個路由設置不同的速率限制器

如何在R Studio AND SQL中使用限制器将数据中的一个单元格拆分为2个单元格

MongoDB - 使用范围查询进行分页

如何使用ReactJs和Hooks对Cloud FireStore数据进行分页

如何使用AngularJS和目录分页对类别进行过滤

如何使用Ramda和Vue对已过滤的数据进行分页

如何使用MySQL和PHP对多个搜索结果进行分页?

将来如何使用Dispatch和Scala对REST呼叫进行分页

如何使用引导程序分页器库对从PHP回显的数据进行分页?

如何使用Angular的UI Bootstrap分页指令进行服务器端分页

如何使用itext进行分页

VueJs:如何使用“加载更多”按钮对数组项目进行分页