获取带有最后一个参数的递增编号的api请求

问题描述 投票:-1回答:1

我正在尝试使用分页和延迟加载来访问数据。 Buts仅仅对第一个请求有效。页面末尾的最后一个参数递增无效。 http://features.domain_server.com/mobileapi/eggsrate/1。我正在尝试在页面末尾更改最后一个参数。 http://features.domain_server.com/mobileapi/eggsrate/2,当第二个请求完成时,然后点击http://features.domain_server.com/mobileapi/eggsrate/3。我尝试使用增量方法,但不起作用

new Vue({

  el: "#app",
  data: {
    posts: [],
    limit: 8,
    busy: false
  },
  methods: {
    loadMore() {


      console.log("Adding 10 more data results");
      this.busy = true;
      axios.get("http://features.domain_server.com/mobileapi/eggsrate/1/0").then(response => {
        const append = response.data.slice(
          this.posts.length,
          this.posts.length + this.limit
        );
        this.posts = this.posts.concat(append);
        this.busy = false;
      });

    },

  },
  created() {
    this.loadMore();
  }
});
AOS.init();
<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>Egg Rates</title>
  <link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.min.css'>
<link rel='stylesheet' href='https://unpkg.com/aos@next/dist/aos.css'>

</head>
<body>
<!-- partial:index.partial.html -->
<section class="section">
  <div id="app">
    <ul>
      <div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="limit">
        <li v-for="post in posts" style="margin-bottom: 2rem;" data-aos="slide-up" data-aos-offset="100" data-aos-easing="ease-out-back">
          <div class="card">
            <header class="card-header">
              <p class="card-header-title">
                {{post.id}}
              </p>
            </header>
            <div class="card-content">
              <div class="content">
                <p>{{post.name}}</p>
                <p>{{post.cities}}</p>
              </div>
            </div>
          </div>
        </li>
      </div>
    </ul>
  </div>
</section>
<!-- partial -->
  <script src='https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.8/vue.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js'></script>
<script src='https://unpkg.com/aos@next/dist/aos.js'></script>
<script src='https://unpkg.com/[email protected]/vue-infinite-scroll.js'></script>
<script  src="./script.js"></script>

</body>
</html>
javascript vue.js
1个回答
0
投票

除了所有其他注意事项,您只需要跟踪当前页面并在加载更多时递增当前页面。

data: () => ({
  posts: [],
  limit: 8,
  busy: false,
  page: 0 // 👈 added this
}),

loadMore()中>

axios.get(`http://features.domain_server.com/mobileapi/eggsrate/1/${this.page++}`)
© www.soinside.com 2019 - 2024. All rights reserved.