嵌套对象,访问父对象中的对象数组=未定义

时间:2016-01-21 22:53:42

标签: javascript arrays angularjs object

我有一个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.IDparentObject.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'
};

1 个答案:

答案 0 :(得分:0)

感谢大家的建议 - 在尝试制作问题的简洁工作示例后,我设法弄清楚为什么会出错......

基本上,子对象数组是通过$ http调用填充的,当我调用其他服务方法时,它(你可能已经猜到了)没有返回。

对代码进行一些重新设计以确保$ http调用首先返回值 ,嘿presto,它工作: - )