Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Angular 选择时服务中未定义的错误_Angular_Angular Services - Fatal编程技术网

Angular 选择时服务中未定义的错误

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;

我有一个方法,可以列出一年的过滤数据列表。在选择HTML的过程中,我有两年的时间:2018年和2017年,默认情况下,我会从2018年开始获取数据,但当我在2017年单击并在2018年再次单击时,我错过了一个未定义的错误,我找不到失败

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}