Tengo esta siguiente función

Archivo: subcategory.service.ts

getSubCategoriesById(inp_subCatid: String): Observable<any>{
  this.getSubCategoriesList().snapshotChanges().pipe(
    map(changes =>
     changes.map(c =>
      ({ key: c.payload.key, ...c.payload.val() })
     )
    )
  ).subscribe(subCategories => {
    subCategories.filter(function (subCat) {
     return subCat.id == inp_subCatid;
   });
});

Y estoy llamando a la función superior en el siguiente archivo

Archivo: subcategory.page.ts

this.SubCategoryService.getSubCategoriesById(subCatid).subscribe((subCategories: any) => {
  this.subCat = subCategories ;
})

El problema que obtuve es que recibo el siguiente mensaje de error: ERROR TypeError: "this.SubCategoryService.getSubCategorysById (...) no está definido"

Quiero obtener los datos cuando se cargan del archivo "subcategory.service.ts" espero que alguien pueda ayudarme.

1
xne2687 1 may. 2020 a las 20:52

2 respuestas

Muchas gracias

¿Qué pasa si quiero filtrar datos específicos? como para "id"

getSubCategoriesbyId(inp_subCatid): Observable<any>{
  this.getSubCategoriesList().snapshotChanges().pipe(
    map(changes =>
      changes.map(c =>
        ({ key: c.payload.key, ...c.payload.val() })
      )
    )
  ).subscribe(subCategories => {
     subCategories.filter(function (subCat) {
    return subCat.id == inp_subCatid;
  });
  });
}

Y luego recuperar los datos filtrados

this.yourService.getSubCategoriesbyId(subCatid)
  .subscribe(subCategories => console.log(subCategories));
0
xne2687 1 may. 2020 a las 23:10

Tu método debería ser así:

getSubCategories(): Observable<any> {
  return this.getSubCategoriesList().snapshotChanges().pipe(
    map(changes => changes.map(c => 
      ({ key: c.payload.key, ...c.payload.val() })
    ));
}

Entonces podrás usar así:

this.yourService.getSubCategories()
  .subscribe(subCategories => console.log(subCategories));
0
julianobrasil 1 may. 2020 a las 18:06