如何从集合中提取特定模型,并设置id模型

时间:2013-05-22 11:58:45

标签: javascript backbone.js parse-platform

Goodmorning,我对模型所具有的特定ID以及它在parse.com中的id有点困惑,因为我的集合已链接到parse.com。

如果我想从我的收藏品中获取特定型号,我该怎么办?

一个例子,我的收藏是这样的:

          var Proposte = Backbone.Collection.extend({

    model:Proposta,

    url:'https://api.parse.com/1/classes/Proposte',

    });

        return Proposte;

我的模特是这样的:

       var Proposta = Backbone.Model.extend({
       url:"https://api.parse.com/1/classes/Proposte",
       ...

如果我想从我的收藏品中获取特定型号,我该怎么办?

2 个答案:

答案 0 :(得分:0)

尝试一下:

var item = Proposte.findWhere({'url':"https://api.parse.com/1/classes/Proposte"});

野兔是doc

修改

上面的代码为您提供了该集合的第一个匹配模型。 如果您想获得与模型的特定属性匹配的多个模型,请使用where

答案 1 :(得分:0)

一般情况:

为您的模型/集合定义idAttribute

var Proposta = Backbone.Model.extend({
    idAttribute: 'name',

});

var Proposte = Backbone.Collection.extend({
    model:Proposta,
    url:'https://api.parse.com/1/classes/Proposte'
});


// Done here with static data just for illustration
var collection = new Proposte([{name: 'aaa'}, {name: 'bbb'}]);

使用已定义的属性从集合中检索模型:

console.log(collection.get('aaa'));

JSFIddle

URL当然也可以是该属性(以防万一):

var Proposta = Backbone.Model.extend({
    idAttribute: 'url'
});
var Proposte = Backbone.Collection.extend({
    model:Proposta,
    url:'https://api.parse.com/1/classes/Proposte',
});

var collection = new Proposte([{url: 'https://api.parse.com/1/classes/Proposte/1'}, {url: 'https://api.parse.com/1/classes/Proposte/2'}]);

console.log(collection.get('https://api.parse.com/1/classes/Proposte/2'));