Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 角度-无法读取未定义的属性“..”_Arrays_Angular_Components - Fatal编程技术网

Arrays 角度-无法读取未定义的属性“..”

Arrays 角度-无法读取未定义的属性“..”,arrays,angular,components,Arrays,Angular,Components,在我的Angular项目中,我得到一个错误,表示无法读取未定义的“…”属性,其中“…”是从组合框中选择的任何员工的索引 对我的项目有一点背景知识。我让用户从组合框tracker.component中选择一名员工。然后,获取该员工的索引并用于显示该员工summary.component的信息。它工作得很好,还有“下一个”、“上一个”、“第一个”和“最后一个”按钮,但每当我打开“摘要”面板summary.component时,就会出现上面在浏览器中所述的错误。我在哪里搞砸了 这是我的tracker.

在我的Angular项目中,我得到一个错误,表示无法读取未定义的“…”属性,其中“…”是从组合框中选择的任何员工的索引

对我的项目有一点背景知识。我让用户从组合框tracker.component中选择一名员工。然后,获取该员工的索引并用于显示该员工summary.component的信息。它工作得很好,还有“下一个”、“上一个”、“第一个”和“最后一个”按钮,但每当我打开“摘要”面板summary.component时,就会出现上面在浏览器中所述的错误。我在哪里搞砸了

这是我的tracker.component.ts

从'@angular/core'导入{Component,OnInit,Input}; 从'@angular/router'导入{RouterModule,Routes}; 从“/pto data.service”导入{PTODataService}; 从“/pto data”导入{PTOData}; 从“./emp info.service”导入{EmpInfoService}; 从“/emp info”导入{EmpInfo}; @组成部分{ 选择器:“pto跟踪器”, templateUrl:`./tracker.component.html`, 样式URL:['./tracker.component.css'] } 导出类TrackerComponent实现OnInit{ empInfo:empInfo[]=新数组; ptoData:ptoData[]; isHidden:boolean=false; 所选员工:编号=0; 公共选择类型:字符串=PTO; 建造师 私有empInfoService:empInfoService, 私有ptoDataService:ptoDataService{} getEmpInfo:void{ this.empInfoService.getEmpInfos.then empInfo=>{ this.empInfo=empInfo.sorta,b=>a.LastNamethis.ptoData=ptoData ; } 恩戈尼尼特:空虚{ 这个.getEmpInfo; 这个.getPTOData; } toggleSummary:无效{ this.ishiden=!this.ishiden; } isNextValid{ 如果选择此选项,则选择“员工>0”{ 返回true; } 否则{ 返回false; } } 以前有效吗{ 如果this.selectedEmployee} 根据消息,我假设问题在这里:{empInfo[selectedEmployee].LastName |大写}

如果您的服务使用Http,那么它是一个异步操作。这意味着您的页面试图在数据可用之前显示

有几种常见的方法可以解决这个问题,但最好的办法可能是在HTML中添加一个*ngIf,在显示页面之前检查是否有数据

就像你在这里已经做的那样:

*ngIf="empInfo && empInfo.length

根据消息,我假设问题在这里:{empInfo[selectedEmployee].LastName |大写}

如果您的服务使用Http,那么它是一个异步操作。这意味着您的页面试图在数据可用之前显示

有几种常见的方法可以解决这个问题,但最好的办法可能是在HTML中添加一个*ngIf,在显示页面之前检查是否有数据

就像你在这里已经做的那样:

*ngIf="empInfo && empInfo.length

根据消息,我假设问题在这里:{{empInfo[selectedEmployee].LastName{大写}}我不确定您是否可以在数组索引上使用安全导航操作。@DeborahK是的,我检查了,它说这是它遇到问题的行,我根据消息,假设问题在这里:{empInfo[selectedEmployee].LastName | uppercase}我不确定您是否可以在数组索引上使用安全导航操作。@DeborahK是的,我检查过了,它说这是它遇到问题的行