我有一个模型实例,我在其上设置了另一个模型实例,即 model.set('rsvp', new App.Rsvp)
。
当我遍历集合以在 View 中生成它们的列表时,我在调用 model.rsvp.get('attending')
时得到 undefined
。
然而,当我执行 console.log(model.rsvp)
时,我得到了这个:
Rsvp
_changing: false
_escapedAttributes: Object
_moreChanges: false
_previousAttributes: Object
_setting: false
attributes: Object
attending: true
created_at: "2012-03-28T09:42:22-05:00"
event_id: 20
id: 12
updated_at: "2012-03-28T09:42:22-05:00"
user_id: 3
__proto__: Object
cid: "c53"
id: 12
__proto__: Rsvp
所以看起来对象没有问题,但 get 返回未定义。
我必须承认我的 Javascript 技能仍然很薄弱。我在这里缺少什么?
最佳答案
console.log( Object )
可以欺骗您。它不会在调用 console.log
时向您显示 Object
的状态。
检查这个jsFiddle并打开控制台。您会看到 console.log
如何在脚本末尾向您显示 Object
的状态,而不是在 console.log
的那一刻> 打电话。
要获得更可靠的信息,请使用更简单的值调用 console.log
。
(在 OSX 上测试了 Chrome、Firefox 和 Safari)
阅读此内容以获取更多详细信息:Backbone.js Empty Array Attribute
关于javascript - Backbone.js model.get() 返回 'undefined' 即使我可以在 console.log 中看到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9911637/