Ionic 2中包含多个页面的GET请求

Posted

技术标签:

【中文标题】Ionic 2中包含多个页面的GET请求【英文标题】:GET request with multiple pages in Ionic 2 【发布时间】: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 请求包含的许多页面)中检索数据,并将它们组合成一个响应,如果可能的话使用一个函数 【参考方案1】:

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

步骤:

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

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

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

应该是这样的。

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

【讨论】:

以上是关于Ionic 2中包含多个页面的GET请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ionic 2 中包含 html 页面?

注意:Tomcat Get请求的坑!

GET和POST协议详解

如何从跨多个页面的 GET 请求中提取所有结果?

如何在我的所有请求查询字符串中包含 JSON webtoken

GET请求中URL的最大长度限制总结