搜索条件表单和集合

Search criteria form and collections

本文关键字:集合 表单 条件 搜索      更新时间:2023-09-26

在我的应用程序中,我想创建一个搜索表单来检索一些用户。这个表格包含许多条件(姓、名、出生日期等)。但我不明白如何发布我的表格来过滤我的收藏。我不能使用fetch方法,因为如果我使用GET方法,我的搜索条件将显示在URL中。事实上,我想向服务器提交一个POST请求(其中包含以JSON序列化的搜索条件),并检索用户列表。

我已经阅读了主干文档,但没有发现任何允许我这样做的内容。主干网不支持此功能?有什么办法可以实现这些要求?

提前感谢

简而言之,我认为主干网不适合您所描述的内容。请继续阅读更长的版本。。。

根据您的问题,我认为主干网非常适合显示您的用户集合,但在提交筛选标准时不太好

您可以创建一个标准模型,并将模型的属性设置为Username、Birthday等,然后可以使用主干网将其发布到服务器。但是,当您使用主干进行保存时,会假定您保存了条件。服务器从POST返回的任何结果都被认为是标准的更新属性,而不是用户列表。

Tim说得对,这并不完全是Backbone的目的。话虽如此,我想我至少还是会使用骨干模型来跟踪搜索条件的状态。在这个模型上,我将添加一个用于激活搜索的自定义方法,该方法将序列化模型的状态并将其POST到服务器本身。如果此方法成功,我将使用结果重置当前用户集合。

以下是我的代码想法:

var SearchModel = Backbone.Model.extend({
  defaults: {
    firstName: "*",
    lastName: "Smith"
  },
  search: function() {
    $.ajax({
        dataType: "json",
        type: "POST",
        data: this.toJSON(),
        success: function(data) {
           this.options.peopleCollection.reset(data);
        }
    })
  }
});
var myPeopleCollection = new PeopleCollection();
var mySearch = new SearchModel({ peopleCollection: myPeopleCollection });
mySearch.set({ firstName: "Steve"});
mySearch.set({ lastName: "Smith" });

mySearch.search();