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


Backbone.js Collection fetch with initial parameter

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

清除一下:我有一个模型人类,其属性名称(字符串(和数字(数组(。我想在我的数据库中找到所有具有给定数字数组的人。(例如:我的数组中有 [123,342,4],对于每个数字,我想提取人们的名字(。

我创建了一个人类收藏,给模型是人类。当我像这样获取时,它不会造成任何问题;

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 数据的唯一方法。

我认为你把事情搞砸了。

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

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

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

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

因此,在骨干集合中,我们可以像这样使用 fetch() 方法的data选项:

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

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

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