/ / Angular2: FilterPipe: No se puede leer la propiedad 'filter' de undefined - angular, filter, pipe, angular-pipe

Angular2: FilterPipe: No se puede leer la propiedad 'filtro' de indefinido - angular, filtro, tubería, tubería angular

He estado tratando de construir un tubo de filtro para miproyecto, que se filtra a través de una serie de cadenas. Está funcionando, pero aún así estoy recibiendo un error. ¿Me pregunto por qué? También me gustaría preguntar si hay alguna forma de hacer que el filtro sea más universal para poder usarlo para otras cadenas.

Aquí está el tubo:

import { Pipe, PipeTransform } from "@angular/core";
import {Afdelingen} from "../models";

@Pipe({
name: "filter"
})
export class FilterPipe implements PipeTransform {

transform(afdeling:Afdelingen[]) {
return afdeling.filter(afd => afd.afdelingsNaam == "pediatrie");
}
}

Mi HTML era solo para pruebas, pero aquí va:

<div *ngFor="let afd of afdeling | filter">
{{afd.afdelingsNaam}}

</div>

También he agregado una imagen para que pueda ver, está funcionando, pero estoy recibiendo un error. Error

EDIT: tubo de búsqueda universal:

import { Pipe, PipeTransform } from "@angular/core";
import {Afdelingen} from "../models";

@Pipe({
name: "filter"
})
export class FilterPipe implements PipeTransform {

transform(afdeling:Afdelingen[], value:string) {
if (!afdeling)
return afdeling;
return afdeling.filter(afd => afd.afdelingsNaam == value);
}
}

Respuestas

3 para la respuesta № 1

Puedes agregar este cheque en tu pipa:

transform(afdeling:Afdelingen[]) {
if (!afdeling)
return afdeling;
return afdeling.filter(afd => afd.afdelingsNaam == "pediatrie");
}

Así que te deshaces de romper las excepciones.