JSON对象TypeError:无法设置属性' 0'未定义的

时间:2016-02-12 11:44:39

标签: javascript angularjs devextreme

我有两个JSON对象,一个用于容纳建筑物,另一个用于容纳房间。一个失败,一个成功。它们都来自代码,价值对。

两者都附在下拉菜单中。 Bldgs显示结果,而房间因上述错误而失败。

从服务器检索到的bldgs JSON看起来像这样

CrudRepository.save()

房间看起来像这样

[{
  "code": "Bldgs",
  "value": "A"
}, {
  "code": "Bldgs",
  "value": "J"
}, {
  "code": "Bldgs",
  "value": "I"
}, {
  "code": "Bldgs",
  "value": "H"
}, {
  "code": "Bldgs",
  "value": "G"
}, {
  "code": "Bldgs",
  "value": "F"
}, {
  "code": "Bldgs",
  "value": "E"
}, {
  "code": "Bldgs",
  "value": "D"
}, {
  "code": "Bldgs",
  "value": "C"
}, {
  "code": "Bldgs",
  "value": "B"
}, {
  "code": "Bldgs",
  "value": "K"
}]

我试过

[{
  "code": "Rooms",
  "value": "1"
}, {
  "code": "Rooms",
  "value": "7"
}, {
  "code": "Rooms",
  "value": "6"
}, {
  "code": "Rooms",
  "value": "4"
}, {
  "code": "Rooms",
  "value": "3"
}, {
  "code": "Rooms",
  "value": "2"
}, {
  "code": "Rooms",
  "value": "16"
}, {
  "code": "Rooms",
  "value": "15"
}, {
  "code": "Rooms",
  "value": "14"
}, {
  "code": "Rooms",
  "value": "13"
}, {
  "code": "Rooms",
  "value": "12"
}, {
  "code": "Rooms",
  "value": "11"
}, {
  "code": "Rooms",
  "value": "9"
}]

enter image description here

我甚至尝试绕过服务器服务调用并执行此操作

   var roomList,bldgList= [];
   dropdowns.listdrops({'code':'Rooms'})
    .$promise
    .then(
        function(data) {
            $log.info("Rooms:" + data.length);
             if (typeof data != "undefined") {
                for(var i = 0, len = data.length; i < len; i++) {
                    roomList[i] = data[i].value;    //ERROR HERE        
                };   
             }                      
        }
    );

   dropdowns.listdrops({'code':'Bldgs'})
    .$promise
    .then(
        function(data) {
            $log.info("Blgds:" + data.length);
            if (typeof data != "undefined") {
                for(var i = 0, len = data.length; i < len; i++) {
                    bldgList[i] = data[i].value;    //NO ERROR         
                };                          
            } else {
                $log.info('ERROR: no Drops');
            }
        }, function(error) {
            $log.info('No Drop downs- Server error');
        }   
    );

1 个答案:

答案 0 :(得分:0)

您需要初始化roomList。 var roomList,bldgList= [];应该是

var roomList = [],
    bldgList = [];