角度“ ngModel” TypeError:无法读取未定义的属性“ 0”

时间:2019-08-26 09:03:20

标签: angular

我的Angular应用程序中有以下ngModel

<input  [(ngModel)]="structuresInfo.structures_elements.se_element_setting[i]['setting_id']" type="text" name="playVoice_i" >

请注意,输入位于ngFor内,i可以从0到任意数字。如何在组件中定义structuresInfo

我有以下内容:

interface element_setting {
    setting_id,
    setting_value
}
interface settings {
    se_element_setting: element_setting[]
}
...
structuresInfo:any = { 
    structures: {},
    structures_elements:<settings> {
    }
};

但是我仍然得到错误。这是错误消息

Cannot read property '0' of undefined

2 个答案:

答案 0 :(得分:0)

您必须将其初始化为一个空数组,否则必须检查它是否未定义。

interface element_setting {
    setting_id,
    setting_value
}
class settings {
    se_element_setting: element_setting[];
    constructor(){
       this.se_element_setting = [];
    }
}
...
structuresInfo:any = { 
    structures: {},
    structures_elements:<settings> {
    }
};

答案 1 :(得分:0)

从一开始就未设置

structuresInfo.structures_elements.se_element_setting。 通常可能是因为您从服务器获取了它。因此,请确保将其初始化为[],或者可以添加:

<ng-content *ngIf="structuresInfo.structures_elements.se_element_setting">
...your ngFor
</ng-content>