web-services - 如何过滤服务器上的 Backbone 集合

标签 web-services backbone.js collections filtering

是否有使用 Backbone 的通用模式?使用过滤服务器上集合的服务?我在 Google 和 Stack Overflow 搜索中找不到任何东西,考虑到生产中的 Backbone 应用程序数量,这令人惊讶。


假设我正在使用 Backbone 为 Stack Overflow 构建一个新的前端。

在搜索屏幕上,我需要将以下信息传递给服务器并取回一页结果。

  • 过滤条件
  • 排序标准
  • 每页结果
  • 页码

Backbone 似乎对将过滤卸载到服务器不太感兴趣。它期望服务器返回整个问题列表并在客户端执行过滤。

我猜想为了完成这项工作,我需要子类化 Collection并覆盖 fetch方法,这样它就不会总是从同一个 RESTful URL 获取数据,而是传递上述参数。

我不想重新发明轮子。我是否缺少 Backbone 中的一项功能,该功能可以使此过程更简单或与现有组件更兼容?是否已经有一个完善的模式来解决这个问题?

最佳答案

如果您只想在请求中传递 GET 参数,您应该能够在 fetch 调用本身中指定它们。

collection.fetch( {
  data: {
    sortDir: "ASC",
    totalResults: 100
  }
} );

传递给 fetch 的选项应该直接转换为 jQuery.ajax调用,并且应该自动解析数据属性。当然覆盖 fetch 方法也很好,特别是如果你想标准化部分逻辑。

关于web-services - 如何过滤服务器上的 Backbone 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765339/

相关文章:

web-services - 什么是网络服务?

java - hibernate Cascade 中的多对一 ="none"

backbone.js - Backbone 在一次事件中触发两种方法

backbone.js - Backbone : How to validate if a Model already exist in a Collection?

c# - .NET:如何有效地检查包含 50,000 个项目的 List<string> 中的唯一性?

java - C# 难民寻求一些 Java 集合帮助

java - 如何使用HashMap模拟缓存

web-services - 寻找 VoIP 服务提供商

c# - 到 TCP 服务器的 Web 服务

javascript - 每次获取时都进行 Backbone 调用获取