ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 如何按页码显示内容或下一步点击vue?

2019-09-26 16:38:59  阅读:530  来源: 互联网

标签:javascript vue-js vue-component pagination vuejs2


我的vue组件是这样的:

<template>
    ...
        <b-col v-for="item in items"
               v-bind:key="item.id"
               cols="2">
            ...
            <strong slot="header" class="text-dark" :title="item.tittle" >{{item.tittle}}</strong><br/>
            ...
            <strong class="bg-warning text-dark"><i class="fa fa-money"></i> <b>{{item.price}}</b></strong><br/>
            ...
        </b-col>
    ...
        <b-pagination size="sm" :total-rows="itemsPagination.total" :per-page="itemsPagination.per_page" v-model="itemsPagination.current_page" prev-text="Prev" next-text="Next" hide-goto-end-buttons/>
    ...
</template>
<script>
    export default {
        ...
        data () {
          return{
              items: '',
              itemsPagination: ''
          }
        },
        mounted: function () {
            this.getItems()
        },
        methods: {
            getItems() {
                let params = []
                ...
                let request = new Request(ApiUrls.items + '?' + params.join('&'), {
                    method: 'GET',
                    headers: new Headers({
                        'Authorization': 'bearer ' + this.$session.get(SessionKeys.ApiTokens),
                        'Content-Type': 'text/plain'
                    })
                })
                fetch(request).then(r=> r.json())
                    .then(r=> {
                        this.items = r.data
                        this.itemsPagination = r
                    })
                    .catch(e=>console.log(e))
            }
        }
    }
</script>

如果我是console.log(this.itemsPagination),控制台中的结果如下:

enter image description here

我在我的应用程序中对分页的看法是这样的:

enter image description here

如果脚本执行,它将显示第1页中项目的内容.但如果我点击第2页等,项目的内容不会更改.我仍然很困惑,让它运作良好

我怎么解决这个问题?

更新

我用coreui

https://coreui.io/vue/demo/#/base/paginations

https://github.com/coreui/coreui-free-vue-admin-template/blob/master/src/views/base/Paginations.vue

https://bootstrap-vue.js.org/docs/components/pagination

解决方法:

您正在尝试v-model =“itemsPagination.current_page”,但您将itemsPagination初始化为空字符串:

    data () {
      return{
          items: '',
          itemsPagination: ''
      }
    }

Vue cannot detect property addition or deletion,所以没有任何反应.您需要将itemsPagination初始化为包含(至少)current_page的对象:

    data () {
      return{
          items: '',
          itemsPagination: {
            current_page: 1
          }
      }
    }

更新:
您可以实际编辑example here.双击右上角进行编辑,然后粘贴以下代码:

<template>
  <div>
    <h6>Default</h6>
    <b-pagination size="md" :total-rows="100" v-model="itemsPagination.current_page" :per-page="10">
    </b-pagination>
    <br>

    <h6>Small</h6>
    <b-pagination size="sm" :total-rows="100" v-model="itemsPagination.current_page" :per-page="10">
    </b-pagination>
    <br>

    <h6>Large</h6>
    <b-pagination size="lg" :total-rows="100" v-model="itemsPagination.current_page" :per-page="10">
    </b-pagination>
    <br>

    <div>currentPage: {{itemsPagination.current_page}}</div>
  </div>    
</template>

<script>
export default {
  data () {
    return {
      itemsPagination: {
        current_page: 1
      }
    }
  }
}
</script>

<!-- pagination-1.vue -->

标签:javascript,vue-js,vue-component,pagination,vuejs2
来源: https://codeday.me/bug/20190926/1820648.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有