【问题标题】:Backbone Pageable Collection how to override the queryparams valueBackbone Pageable Collection 如何覆盖查询参数值
【发布时间】:2015-10-27 20:54:51
【问题描述】:

我在我的网络应用程序中使用主干分页器插件(服务器模式)。该插件以页面的形式与服务器对话。例如,要获取第 5 页的结果,它会给出如下请求(取自分页器服务器示例:http://backbone-paginator.github.io/backbone.paginator/examples/server-mode.html)

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

但我的服务器接受计数和偏移值而不是 page 和 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。

我认为我应该重写 get*page 方法,但我无法访问查询参数。

非常感谢您对此提供的任何帮助。

【问题讨论】:

    标签: backbone.js backbone-paginator


    【解决方案1】:

    有点晚了,但您可以尝试覆盖 queryParams

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

    和状态

    state: {
            firstPage: 0,
            pageSize: 20
        }
    

    当然,如果你愿意,你可以覆盖来自backbone.paginator.js 的额外参数

    【讨论】:

      【解决方案2】:

      您可以使用返回 pageSize 乘法的函数来覆盖 state 的 currentPage 值。

      请注意,the docs 声明:

      […] 您应该只在扩展、初始化或获取后由服务器重置期间覆盖此值。该值只能在其他时间读取。

      您可能还应该重写parseState 函数,以正确接受从后端返回的值。查看the docs 了解更多信息。

      【讨论】:

      • 我最终实现了我自己的页面状态管理版本,方法是恢复到主干.collection。
      猜你喜欢
      • 2012-11-01
      • 2020-02-07
      • 2021-08-16
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多