JSON object TypeError: Cannot set property '0' of undefined
JSON object TypeError: Cannot set property '0' of undefined
我有两个 JSON 对象,一个包含建筑物,另一个包含房间。一个失败,一个成功。它们都以代码、值对的形式出现。
两者都附加到下拉菜单。 Bldgs 显示结果,而房间因上述错误而失败。
从服务器检索到的建筑 JSON 看起来像这样
[{
"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"
}]
我试过了
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');
}
);
我什至尝试绕过服务器服务调用并这样做
var test = [{"code":"Rooms","value":"1"},ode":"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"}];`
for(var i = 0, len = test.length; i < len; i++) {
roomList[i] = test[i].value; //ERROR
};
您需要初始化roomList。 var roomList,bldgList= [];
应该是
var roomList = [],
bldgList = [];
我有两个 JSON 对象,一个包含建筑物,另一个包含房间。一个失败,一个成功。它们都以代码、值对的形式出现。
两者都附加到下拉菜单。 Bldgs 显示结果,而房间因上述错误而失败。
从服务器检索到的建筑 JSON 看起来像这样
[{
"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"
}]
我试过了
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');
}
);
我什至尝试绕过服务器服务调用并这样做
var test = [{"code":"Rooms","value":"1"},ode":"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"}];`
for(var i = 0, len = test.length; i < len; i++) {
roomList[i] = test[i].value; //ERROR
};
您需要初始化roomList。 var roomList,bldgList= [];
应该是
var roomList = [],
bldgList = [];