Backbone.js使用初始参数获取集合

时间:2012-05-20 22:33:27

标签: php json collections backbone.js

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

要清除:我有一个模型Human,其属性为 name (作为字符串)和 numbers(array)。我想找到我的数据库中所有给定数字的人。 (示例:我的数组中有[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数据的唯一方法。

1 个答案:

答案 0 :(得分:5)

我认为你搞砸了。

据我了解,数字是您要获取的Human.ids

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

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

此外,您还必须准备服务器层,以便能够使用您想要服务器的人的 ids 处理过滤器参数回复。

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

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

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

然后在你的收藏中,你将只有你选择的人类,你可以向他们询问名称或其他什么。