Javascript 主干。集合按id获取模型

Javascript 主干。集合按id获取模型,javascript,backbone.js,Javascript,Backbone.js,我有一个从服务器获取模型的集合 这是可行的,现在我想用MyCollection通过id抓取一个模型。在(0)处,我得到: child _changes: Array[0] _changing: false _currentAttributes: Object _events: Object _hasComputed: true _pending: false _previousAttributes: Object attributes: Object _id: "50ef7a63b2a53d17

我有一个从服务器获取模型的集合

这是可行的,现在我想用MyCollection通过id抓取一个模型。在(0)处,我得到:

child
_changes: Array[0]
_changing: false
_currentAttributes: Object
_events: Object
_hasComputed: true
_pending: false
_previousAttributes: Object
attributes: Object
_id: "50ef7a63b2a53d17fe000001"
author_name: "author name"
bookmark: ""
info: "bookmark description"
__proto__: Object
changed: Object
cid: "c26"
collection: child
view: child
__proto__: Surrogate
如果我尝试通过其id获取模型,我会得到:

MyCollection.get("50ef7a63b2a53d17fe000001")
=> undefined

MyColleciton.get({_id:"50ef7a63b2a53d17fe000001"})
=> undefined

MyCollection.get({'_id':"50ef7a63b2a53d17fe000001"})
=> undefined

我不明白-文档清楚地说,如果集合中存在具有给定id的模型,那么
.get()
方法将返回该模型。

您可以使用模型的
cid
(客户端id)属性作为
MyCollection.get()
的参数,该属性从创建时就保证存在。文档似乎认为这会起作用,请参见。

您对模型进行了设置吗

var Model = Backbone.Model.extend({
    idAttribute:"_id"
});
默认情况下,主干网希望id属性被称为id。当设置了
idAttribute
时,主干网会标准化id的处理,以便
model.id
始终可用,即使id属性被称为其他属性。原始id属性在模型的
属性
散列中可用,因此可以通过
get
方法使用。因此:

model.id === model.get('_id') // -> true

我得到了ID而不是CID,我想使用ID而不是CID。我得到了,但我确实想找出为什么我不能通过ID访问模型,正如我所说的-CID不是问题。你是对的!(在这里插入脸部手掌)我不知何故没有从医生那里得到,我认为_id=id是默认值。谢谢;-)