簡體   English   中英

Angular:無法創建分頁循環

[英]Angular: Unable to create Pagination loop

我正在調用一個只列出30個結果作為響應的API。 對於多個頁面,我需要創建一個while循環來調用api並存儲每個調用的數據,直到沒有頁面為止。

我已經嘗試了幾種方法。 我有一個調用API並返回數據的服務。 在我的組件中,我試圖調用該服務,獲取數據,再次調用它,存儲更多數據等。

目前我正在使用.reduce來存儲數據並將其分成鍵/值對。

export class SectionDashboardComponent implements OnInit {

constructor(private _freshServiceService: freshServiceService) { }

private ticketCounts: number[];
private ticketResponders: string[];
keyValMap = {};

ngOnInit() {
let thisPage = 1;
this._freshServiceService.fetchTickets(thisPage).subscribe
(
  data =>
  {
    while(data.length > 0){
       thisPage += 1;
       this.getTicketData(data);
    }
  },
  err=> {
    console.log(err);
    if(err.status == "500"){
      console.log('yes')
    }
  }
);
  }


private getTicketData(tickets: Ticket[]): void {
  this.keyValMap = tickets.reduce((x, y) => {
  {x[y.responder_name] = x[y.responder_name] + 1 || 1};
  return x;
  }, this.keyValMap); 

  this.ticketResponders = Object.keys(this.keyValMap);

  this.ticketCounts = Object.values(this.keyValMap);

console.log(this.ticketResponders);
console.log(this.ticketCounts);
}
}

我嘗試的所有內容都會崩潰我的應用程序,因為它無限運行並且永遠不會更新“數據”變量,或者它不會更新頁碼。 我不知道如何在while循環中包含實際的服務調用並訂閱它並在每次調用時更改它。 這可能嗎?

旁注:我意識到上面的代碼顯然不是解決方案,因為while循環不包括調用。 我不太清楚該怎么做。 任何幫助是極大的贊賞。

這是我的方法:

前幾點要提到:

  • 我的分頁只包含前一頁或下一頁的選項。 沒有選擇任何中間頁面的選項。
  • 我使用ngrx存儲來存儲與分頁相關的數據和最終結果。
  • 我在后端使用了mongodb節點。

腳步:

  1. 一旦頁面加載,我就會調用我的API來獲取20個結果。 (默認情況下,所有數據都按_id降序排列)。 我只在用戶移動到新頁面時獲取數據。
  2. 在每個新結果上,我存儲了文檔的第一個和最后一個_id。
  3. 如果用戶點擊下一頁,則會向API發出新請求。 在請求的查詢參數中,我傳遞了兩個表示結果的最后一個id和'next'的屬性。
  4. 同樣適用於上一頁,第一個ID和'prev'值。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM