【问题标题】:GET request with multiple pages in Ionic 2Ionic 2中包含多个页面的GET请求
【发布时间】:2018-01-18 07:05:03
【问题描述】:

所以我试图在我的 Ionic 2 应用程序中向 API 服务器发送 GET 请求,返回的 JSON 太大而无法在一页中,因此服务器将其分成页面,每个页面都有不同的 URL(显然)。

我的问题是我不知道如何在同一个请求中调用其他页面,听说使用无限滚动会有所帮助,我查看了官方文档,但我仍然无法解决我的问题。

这是我的 App.ts 代码:

  constructor(public navCtrl: NavController, public navParams: 
     NavParams,private http:Http) {

  this.http.get("http://linkofAPI")
    .subscribe(data => {
      // console.log(data['_body']);
      this.items = JSON.parse(data['_body']).data;//Bind data to items object
      console.log(this.items);
    }, error => {
      console.log(error);// Error getting the data
    });
}

还有我的App.html

  <ion-item class="items" *ngFor="let item of items; let i=index">

  <h3 dir="rtl">{{item.content.ar.title}}</h3>

【问题讨论】:

  • “在同一请求中调用其他页面”是什么意思?你想通过对服务器进行 1 次调用来请求 2 个不同的 URL 吗?
  • @DeveshSati 我希望我的函数在完成当前页面后调用获取请求到下一页,我听说可以使用 ion-infinite-scroll,但我不确定如何应用它。
  • 你想实现无限滚动还是想从2个不同的请求中加载数据并将服务器响应合并为1个?
  • @DeveshSati 主要的优先级是从 2 个不同的请求(或者 api 请求包含的许多页面)中检索数据,并将它们组合成一个响应,如果可能的话使用一个函数

标签: html typescript web ionic-framework ionic2


【解决方案1】:

我不会在这里写实际的代码,但会告诉你如何实现你想要的。

步骤:

1) 声明一个变量,您希望最终包含两个响应组合后的结果。我不知道返回数据的结构,但我猜它返回某种数组,因为涉及到分页。让这个变量最初有 0 个元素。

2) 以与您所做的相同的方式独立地发出两个请求。这确保了第二个调用不必等待第一个调用完成,并且它们可以异步工作。

3) GET 调用成功返回后,将元素添加到第一步声明的变量中。如果您愿意,您可以使用 'concat' 函数在单个语句中实现此目的。

应该是这样的。

如果您想拨打第一个电话,请等待它的响应,然后再拨打第二个电话,我建议您查看“Promise Chaining”。

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 2018-01-24
    • 1970-01-01
    • 2018-11-28
    • 2016-06-05
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多