Javascript 未定义的子对象
我通过jQuery解析了一些JSON,并将其加载到一个对象Javascript 未定义的子对象,javascript,jquery,json,object,Javascript,Jquery,Json,Object,我通过jQuery解析了一些JSON,并将其加载到一个对象$framework。我可以调用console.log($framework),它会返回以下内容: Object List item currentPage: Object hash: "" path: "/" routes: Array[3] url: "http://example.com.dev/" __proto__: Object 例如,我可以执行con
$framework
。我可以调用console.log($framework)
,它会返回以下内容:
Object
List item
currentPage: Object
hash: ""
path: "/"
routes: Array[3]
url: "http://example.com.dev/"
__proto__: Object
例如,我可以执行console.log($framework.path)
,但是console.log($framework.currentPage)
或console.log($framework.routes)
总是返回未定义的。在控制台中,我实际上可以展开这两个属性并查看它们的子属性,所以看起来它们确实存在。我做错了什么
编辑:根据要求,以下是我为routes属性使用的JSON:
{
"routes": [
{
"title": "Root",
"path": "/",
"path_plain": "",
"partial": "index",
"container": "#main_content"
},
{
"title": "Content",
"path": "/content",
"path_plain": "content",
"partial": "content/index",
"container": "#main_content"
},
{
"title": "Dashboard",
"path": "/dashboard",
"path_plain": "dashboard",
"partial": "dashboard/index",
"container": "#main_content"
}
]
}
编辑:在进一步研究这个问题之后,发现真正的罪魁祸首是在$framework完全设置之前发生的自定义回调。我无法解释为什么我可以在控制台中直接引用属性前后看到对象,但仍然没有定义,但至少它已经解决了。试试这个:
console.log($framework.routes[0])
记录第一项,console.log($framework.routes[1])
如果您试图查看内容,请按此类推
在JSON中,
$framework.routes[0]。title
应返回Root
注意控制台.log
显示对象的当前状态,因此如果以后更改,可能就是它。如果您在JS控制台(而不是脚本)中运行console.log($framework.routes)
,您会得到什么?您也可以显示JSON吗?在浏览器上添加一个屏幕截图或解释更多内容,因为数组不可能是未定义的。这是国家政策的改变object@Davidnbrooks我已经给你举了一个例子,告诉你如何使用console.log
和对象。@AbdennourToumi,我明白了。我无法解释为什么在显示之后事情被声明为未定义,但看起来这是一个时间问题。函数的回调是在init之后返回的,而不是在一切都设置好之后。所以,虽然控制台日志$framework显示正确,但似乎我得到了一个变量场景的双重加载。它是固定的,但我不确定这一个是否合乎逻辑。再次感谢你的帮助!