2014-02-13 18 views
0

我剛剛在我的BackboneJS應用中的某些模型中添加了idAttribute: '_id',以便在服務器端用於MongoDB。起初,如果以後在視圖中查看模型,則此功能按預期工作,this.model.id設置爲與_id相同的值。但是,如果我在模型id上使用get方法,則它將返回undefined。我可以切換到使用this.model.id而不是this.model.get('id'),這似乎是使用get方法是一種更清晰和更正式的檢索模型數據的方式。這是設計嗎?爲了一致性,我應該在任何地方停止使用model.get?謝謝。BackboneJS模型方法'get'沒有考慮idAttribute設置

+1

'this.model.id'和'this.model.get('id')'有區別。 'this.model.id'與你的'idAttribute'屬性是「同步的」。 'this.model.get('id')'指的是'this.model.attributes.id',如果你不使用它,則不存在。現在,'get'方法只包含'return this.attributes [attr];'。因此它不檢查你是否試圖獲得你的'idAttribute'屬性。如上所述,唯一的兩種解決方案是使用'this.model.id'或'this.model.get(this.model.idAttribute)'。 – Loamhoof

回答

2

我的理解是,你仍然必須使用this.model.get('_ id')。告訴骨幹哪個屬性唯一地標識了你的模型不會改變屬性哈希中屬性的名字。