无法设置未定义或空引用的 属性 'Property name'

Unable to set property 'Property name' of undefined or null reference

浏览器IE11 AngularJS Api 返回数据并正在加载到自定义对象,例如

apiData.map(function(item){
 return {
    id: item.Id,
    name: item.Name,
    types:{}
});

此 'types' 属性 正在通过 init 方法填充如下:

for (int i=0, i<data.length; i++){
data[i].types = getTypes(); -- this line gives undefined error
}

你能告诉我这里出了什么问题吗? getTypes() 函数正在返回正确的数据。

提前感谢您提供建议。 索娜丽·达斯

你可以这样试试

for (int i=0, i<data.length; i++){
  var datatype = getTypes(data[i].types);
}

首先,我发现你这里有一些语法错误:

apiData.map(function(item){
 return {
    id: item.Id,
    name: item.Name,
    types:{}
 } //missing a curly braces here
});

再次语法:

for (let i=0; i<data.length; i++){ //not int, ";" not ","
  data[i].types = getTypes();
}

其次,.map不会改变原来的数组而是return一个新的数组,确保你已经将新的returned数组分配给data

它应该是这样的

var data = apiData.map(function(item){
 return {
    id: item.Id,
    name: item.Name,
    types:{}
  }
});
for (let i=0; i<data.length; i++){ 
   data[i].types = getTypes(); 
}