2015-07-03 72 views
1

我在我的web應用中使用了骨幹分頁器插件(服務器模式)。這個插件以頁面的形式與服務器對話。例如,爲了獲得第5頁的結果,它給出如下(從分頁程序服務器例如採取:http://backbone-paginator.github.io/backbone.paginator/examples/server-mode.html)的請求Backbone Pageable Collection如何覆蓋queryparams的值

https://api.github.com/search/issues?page=5&per_page=15&... 

但我的服務器接受計數和偏移值,而不是網頁和per_page。所以,我必須轉換

"page=5" to "offset=76" (assuming page size is 15). 

同樣

"per_page=15" becomes "count=15". 

因此,修改後的請求應該是什麼樣子,

https://api.github.com/search/issues?offset=101&count=15&... 

我可以改變的使用 「queryParams」 參數名稱哈希。但無法弄清楚如何將page = 5更改爲offset = 76。

我以爲我應該重寫獲取*頁面方法,但在那裏我沒有訪問查詢參數。

任何幫助,在此非常感謝。

回答

0

您可以覆蓋statecurrentPage值,其函數返回pageSize的乘積。

注意the docs狀態:

[…]您應該只覆蓋在擴展,初始化該值或提取後,由服務器重置。該值只能在其他時間讀取。

您應該也可以重寫parseState函數,以正確接受從後端返回的值。查看the docs瞭解更多信息。

+0

我最終通過恢復到backbone.collection實現了我自己的頁面狀態管理版本。 –

1

這是一個有點晚了,但你可以嘗試重寫queryParams

queryParams: { 
    currentPage: "page", 
    pageSize: "offset" 
} 

和國家

state: { 
     firstPage: 0, 
     pageSize: 20 
    } 

當然,你也可以從backbone.paginator.js覆蓋額外的參數,如果你喜歡