Javascript 主干。集合按id获取模型
我有一个从服务器获取模型的集合 这是可行的,现在我想用MyCollection通过id抓取一个模型。在(0)处,我得到: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
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是默认值。谢谢;-)