使用骨干网,我看到一个问题,其中一些数据被留空,所以我写了这个以试图看看发生了什么。
console.log('actions.models', this.model.actions.models)
console.log('actions.models.length', this.model.actions.models.length)
console.log('first actions.models', this.model.actions.models[0])
输出
actions.models [ Action ]
actions.models.length 0
first actions.models undefined
如果我向这段代码添加一个2秒钟的setTimeout,我得
actions.models [ Action ]
actions.models.length 1
first actions.models Action
我不明白这是怎么发生的。我不知道从哪里开始寻找,甚至可以帮助你们发帖看看。
如果有人能帮助我指出正确的方向,我将不胜感激。非常感谢。
答案 0 :(得分:1)
您是否通过Ajax函数加载模型,例如fetch
?如果是这样,在调用Ajax函数的回调之前,你不能指望加载数据,例如。
actions.fetch {success: -> console.log actions.models.length}
答案 1 :(得分:0)
不确定你要做什么,但无论如何..当你将对象转储到控制台日志时,要注意这样一个事实,即由于对象是通过引用传递的,所以无论你在日志中检查它是什么都将是对象最终成了。假设您要记录对象的状态,您应该尝试在记录时序列化它。例如console.log "mymodel: ", JSON.stringify(mymodel.attributes)
。
另请注意,要访问骨干网模型,您通常会使用name = mymodel.get('name')
或收集item = mycollection.get('someid')
。
如果您发布一些可测试的代码以及您要完成的任务,我确定有线索的人能够帮助您。