Acabo de actualizar a Ionic 3.0.1 para poder usar LazyLoading , y desde entonces no puedo usar mis Pipes personalizados:
import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'StripHTML' }) export class StripHTML implements PipeTransform { transform(value, args) { let striped = value.replace(/(<([^>]+)>)/g, ""); if (args != null) { if (args.split != null) { striped = striped.split(args.split); if (args.index != null) { striped = striped[args.index]; } } } return striped; } } y en app.module.ts lo he agregado a las declaraciones:
@NgModule({ declarations: [ ........, StripHTML ], ... ahora, cuando intento usarlo en la plantilla html , se produce un error:
core.es5.js:1085 ERROR Error: Uncaught (in promise): Error: Template parse errors: The pipe 'StripHTML' could not be found (" <ion-card-content> <ion-card-title style="font-size: 100%"> {{ [ERROR ->]product.title | StripHTML }} </ion-card-title> </ion-card-content> "): ng:///HomeModule/Home.html@33:17¿Hay algo que me esté perdiendo aquí?
así que arreglé este problema haciendo un PipesModule donde importo mis Pipes personalizados, luego lo importo en la página module.ts en la que quiero usarlo
import { NgModule } from '@angular/core'; import { StripHTML } from './strip-html'; @NgModule({ declarations: [ StripHTML, ], imports: [ ], exports: [ StripHTML ] }) export class PipesModule { } y luego en la página | HomePage de inicio como ejemplo:
import { NgModule } from '@angular/core'; import { IonicPageModule } from 'ionic-angular'; import { Home } from './home'; import { PipesModule } from '../../pipes/pipes.module'; @NgModule({ declarations: [ Home, ], imports: [ IonicPageModule.forChild(Home), PipesModule ], exports: [ Home ] }) export class HomeModule { }y funcionó bien, no estoy seguro de si esta es la forma correcta o no, pero funcionó bien, avíseme si hay una mejor manera... ¡gracias!
Lo que debe hacer es importar PipesModule (línea 12 en el fragmento a continuación) en cada archivo page.module.ts (es decir, home.moodule.ts) ...
import { NgModule } from '@angular/core'; import { IonicPageModule } from 'ionic-angular'; import { LoginPage } from './login'; import { PipesModule } from '../../pipes/pipes.module'; @NgModule({ declarations: [ LoginPage, ], imports: [ IonicPageModule.forChild(LoginPage), PipesModule ] }) export class LoginPageModule { }Esto funcionó para mí.