angular - not - ionic input
Ionic-3 no puede encontrar la pipa (2)
Lo que debe hacer es simplemente importar el PipesModule (línea 12 en el siguiente fragmento de código) en cada archivo de 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í.
Acabo de actualizar a Ionic 3.0.1
por lo que puedo 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 estoy intentando usarlo en la plantilla html
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 solucioné este problema haciendo un PipesModule
en el que PipesModule
mis Pipes
personalizados, luego lo module.ts
en el module.ts
la página. Quiero usarlo en
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
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 si esta es la forma correcta o no, pero funcionó bien, por favor, hágamelo saber si hay una mejor manera ... ¡gracias!