【问题标题】:Vue js seems to break bootstrap paginationVue js 似乎打破了引导分页
【发布时间】:2020-04-16 15:51:40
【问题描述】:

我正在尝试在 vueJS 中对视图进行分页,并且我的分页标记如下:

<nav aria-label="Page navigation example">
  <ul class="pagination">
    <li class="page-item">
      <a class="page-link"  v-if="page != 1" @click="page--">
        Previous
      </a>
    </li>
    <li class="page-item">
      <a class="page-link" v-for="pageNumber in pages.slice(page-1, page+5)" @click="page = pageNumber">
        [[pageNumber]]
      </a>
    </li>
    <li class="page-item">
      <a class="page-link" @click="page++" v-if="page < pages.length">
        Next
      </a>
    </li>
  </ul>
</nav>

虽然分页代码很好,但分页以某种方式垂直而不是像这样水平对齐:

我注意到似乎是这段代码破坏了它:

<li class="page-item">
  <a class="page-link" v-for="pageNumber in pages.slice(page-1, page+5)" @click="page = pageNumber">
    [[pageNumber]]
  </a>
</li>

有人知道为什么会这样吗?我不是前端开发人员,我的 HTML 技能也不是最好的 - 任何指针都会很棒。

谢谢。

【问题讨论】:

  • 您可能需要将 css 规则 display: inline-block; 添加到您的 .page-item 类中。注意:添加css 样式规则会有所帮助;-) 你能添加它们吗?或者最好在 codepen.io 中重现这个?
  • 这一行之后"
  • 下一个
  • " 有一个
没有打开我认为是导致问题的原因
  • @pinoyCoder:嗯,不,我把那个错字去掉了,它的行为仍然一样.. :(
  • @AdamOrlov:嗯,没有那个css规则的骰子:(
  • @JohnM 然后在 codepen.io 或 codesandbox 上重现该问题,或者至少向我们展示您的 css 代码。我们不知道 page-itempage-link 类中的内容。
  • 标签: twitter-bootstrap vue.js bootstrap-4 vuejs2


    【解决方案1】:

    您的分页看起来完全错误的原因是因为您将v-for 放在a 标记上的li 旁边。

    您需要将其放在li 上,因为每个li 代表一个页面按钮

    在 sn-p 中,我在下一个按钮上替换了您的 v-if,因为让按钮消失可能会造成混淆。 相反,我使用了条件类。

    作为替代方案,您可以使用bootstrap-vue's pagination,这可能会省去您自己编写逻辑的一些麻烦。

    new Vue({
      el: '#app',
      data() {
        return {
          page: 1,
          pages: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        }
      }
    })
    <script src="https://unpkg.com/vue@latest/dist/vue.min.js"></script>
    <link href="https://unpkg.com/bootstrap@4.4.1/dist/css/bootstrap.min.css" rel="stylesheet"/>
    
    <div id="app">
      <nav aria-label="Page navigation example">
        <ul class="pagination">
          <li class="page-item" :class="{ 'disabled': page == pages[0] }">
              <a class="page-link" href="#" @click="page--">
                Previous
              </a>
            </li>
          <li class="page-item" 
              :class="{ 'active': page === pageNumber }" 
              v-for="pageNumber in pages.slice(page-1, page+4)">
            <a class="page-link" href="#" @click="page = pageNumber">
              {{ pageNumber }}
            </a>
          </li>
          <li class="page-item" :class="{ 'disabled': page >= pages.length }">
            <a class="page-link" href="#" @click="page++">
              Next
            </a>
          </li>
        </ul>
      </nav>
    </div>

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签