Angular 选择时服务中未定义的错误
我有一个方法,可以列出一年的过滤数据列表。在选择HTML的过程中,我有两年的时间:2018年和2017年,默认情况下,我会从2018年开始获取数据,但当我在2017年单击并在2018年再次单击时,我错过了一个未定义的错误,我找不到失败Angular 选择时服务中未定义的错误,angular,angular-services,Angular,Angular Services,我有一个方法,可以列出一年的过滤数据列表。在选择HTML的过程中,我有两年的时间:2018年和2017年,默认情况下,我会从2018年开始获取数据,但当我在2017年单击并在2018年再次单击时,我错过了一个未定义的错误,我找不到失败 getControlEstadoMes(anyo: number) { this.service.getControlEstadoMes(anyo).subscribe(data => { this.gridData = data;
getControlEstadoMes(anyo: number) {
this.service.getControlEstadoMes(anyo).subscribe(data => {
this.gridData = data;
});
}
这是服务上的方法:
getControlEstadoMes(value: number): Observable<ControlEstadoMesFormateado[]> {
let listaControlEstadoMesFormateado : ControlEstadoMesFormateado[] = [];
let anyos = MOCK_CONTROLESTADOMES.filter(element => element.anyo == value);
anyos.forEach(element => {
let controlEstadoMesFormateado: ControlEstadoMesFormateado = Object.assign(element);
let nombreMes = MOCK_CONTROLESTADOMESES.find(x => x.id == element.mes);
controlEstadoMesFormateado.mes = nombreMes.nombre;
listaControlEstadoMesFormateado.push(controlEstadoMesFormateado);
});
return of(listaControlEstadoMesFormateado);
}
getControlEstadoMes(值:number):可观察{
让listaControlEstadoMesFormateado:ControlEstadoMesFormateado[]=[];
让anyos=MOCK_CONTROLESTADOMES.filter(element=>element.anyo==value);
anyos.forEach(元素=>{
让ControlEstaDomesFormatReado:ControlEstaDomesFormatReado=Object.assign(元素);
让nombreMes=MOCK_controlestadomes.find(x=>x.id==element.mes);
CONTROLESTADOMES FORMATEADO.mes=nombreMes.nombre;
listaControlEstadoMesFormateado.push(控件设置为FORMATEADO);
});
返回(listaControlEstadoMesFormateado);
}
这是HTML上的选择:
<select class="form-control" id="anio" [(ngModel)]="anyoSeleccionado" (change)="getControlEstadoMes($event.target.value)">
<option *ngFor="let anyo of listaAnyos">{{ anyo }}</option>
</select>
{{anyo}}
这就是错误:
Cannot read property 'nombre' of undefined
at eval (control-estado-mes.service.mock.ts:24)
at Array.forEach (<anonymous>)
at ControlEstadoMesServiceMock.getControlEstadoMes (control-estado-mes.service.mock.ts:21)
at ControlHorasBloquearMesComponent.getControlEstadoMes (control-horas-bloquear-mes.component.ts:29)
at Object.eval [as handleEvent] (ControlHorasBloquearMesComponent.html:10)
at handleEvent (core.es5.js:12023)
at callWithDebugContext (core.es5.js:13493)
at Object.debugHandleEvent [as handleEvent] (core.es5.js:13081)
at dispatchEvent (core.es5.js:8615)
at eval (core.es5.js:9226)
无法读取未定义的属性“nombre”
评估时(控制站mes.service.mock.ts:24)
在Array.forEach()处
在ControlEstadoMesServiceMock.getControlEstadoMes(ControlEstado mes.service.mock.ts:21)
在ControlHorasBloquearMesComponent.getControlEstadoMes(ControlHorasBloqueArmes.component.ts:29)
在Object.eval[as handleEvent](ControlHorasBloquearMesComponent.html:10)
在handleEvent(core.es5.js:12023)
在callWithDebugContext(core.es5.js:13493)
在Object.debugHandleEvent[作为handleEvent](core.es5.js:13081)
在dispatchEvent(core.es5.js:8615)
评估时(core.es5.js:9226)
尝试使用筛选器而不是findI获取以下错误:属性“name”在类型“Meses[]”中不存在任何对象是否有值?使用调试器来检查它。首先,是的,但是当我想再次从2017年返回到2018年时,就是当我得到错误时。测试它{{anyo}