我有一个javascript对象(来自MySQL的数据),它有一个属性是一个对象数组,例如;
parentObject = { ID: "1",
Desc: "A description",
childObjectArray : [ { item: "an item", cost: "cost" },
{ item: "another item", cost: "another cost" } ]
};
我的问题是,当我将parentObject
传递给某个功能时,我可以看到它,但如果我尝试访问parentObject.childObjectArray
,我会得到undefined
。我很高兴能够访问parentObject.ID
和parentObject.Desc
。
我做错了什么?
编辑:其他信息和示例代码:
来自Angular控制器的代码(尝试没有hasOwnProperty
位且结果没有差异):
this.doStuff = function() {
for (parentObject in this.parentObjects) {
if (this.parentObjects.hasOwnProperty(parentObject)) {
myService.doStuff(this.parentObjects[parentObject]);
}
}
};
来自Angular服务的代码,由控制器调用:
function doStuff (obj) {
console.log(obj); // looks good, can see parent and child object
console.log(obj.childObjectArray); // results in 'undefined'
console.log(obj.childObjectArray[0]); // still 'undefined'
};
答案 0 :(得分:0)
感谢大家的建议 - 在尝试制作问题的简洁工作示例后,我设法弄清楚为什么会出错......
基本上,子对象数组是通过$ http调用填充的,当我调用其他服务方法时,它(你可能已经猜到了)没有返回。
对代码进行一些重新设计以确保$ http调用首先返回值 ,嘿presto,它工作: - )