0

有没有办法通过向fetch()提供初始模型参数来获取集合。

清除:我有一个具有属性name(作为字符串)和numbers(array)的模型 Human 。我想在我的数据库中找到所有具有给定数字数组的人。(示例:我的数组中有 [123,342,4] ,对于每个数字,我想提取人名)。

我创建了一个 Human 集合,赋予模型是human。当我这样获取时,它不会引起任何问题;

humanCollection.fetch({
            success:function(model,response){
                console.log(model.toJSON().length);
                var arr=model.toJSON();
                for(var i=0;i<arr.length;i++)
                    console.log(arr[i].humanName+" ");
                console.log("Success");
            },
            error:function(model,response){
                console.log(response);
                console.log("Failure");
            }
        });

我正在考虑创建一个没有名称而只有数字的虚拟人体对象,然后将数字传递给我的php,但是当我将参数放在开头时, .fetch()函数似乎不起作用。甚至下面的代码也不起作用;

 humanCollection.fetch({},{
                success:function(model,response){
                    console.log(model.toJSON().length);
                    var arr=model.toJSON();
                    for(var i=0;i<arr.length;i++)
                        console.log(arr[i].humanName+" ");
                    console.log("Success");
                },
                error:function(model,response){
                    console.log(response);
                    console.log("Failure");
                }
            });

可能是什么问题呢?为了检索具有给定数字的人类集合,我创建一个虚拟人体模型是否合乎逻辑。这是我能想到的传输特定所需 json 数据的唯一方法。

4

1 回答 1

5

我认为你在搞砸事情。

据我了解,这些数字Human.ids您要获取的。

如果这是正确的,这些数字对于模型的一部分没有任何意义Human。我宁愿将它们移到Collection.

您必须准备集合以在URL中发送一个过滤器参数,该参数通知服务器层该集合想要获取的人类。fetch

此外,您还必须准备服务器层,以便能够使用您希望服务器响应的 Humans的id来处理过滤器参数。

因此,在 Backbone Collection 中,我们可以使用如下方法的data选项fetch()

humanCollection.fetch({ data: { ids: [123, 342, 4] } });

服务器将必须解析ids参数并仅返回请求的 Humans。

然后在您的收藏中,您将只有您选择的人类,您可以向他们询问姓名或其他任何内容。

于 2012-05-21T10:32:53.310 回答