是否有使用 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/