我刚刚升级到Ionic 3.0.1,所以我可以使用LazyLoading,因此我不能使用我的自定义Pipes:
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;
}
}在app.module.ts中,我将其添加到声明中:
@NgModule({
declarations: [
........,
StripHTML
],
...现在,当我试图在html模板中使用它时,它会出错:
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我是不是漏掉了什么?
发布于 2017-04-09 05:26:56
因此,我修复了这个问题,方法是创建一个PipesModule,将自定义Pipes导入其中,然后将其导入到我要使用它的页面module.ts中
import { NgModule } from '@angular/core';
import { StripHTML } from './strip-html';
@NgModule({
declarations: [
StripHTML,
],
imports: [
],
exports: [
StripHTML
]
})
export class PipesModule { }然后以页面| HomePage为例:
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 { }它确实工作得很好,不确定这是不是正确的方法,但它工作得很好,请让我知道是否有更好的方法……谢谢!
发布于 2017-08-02 19:14:48
您需要做的只是将PipesModule(下面代码片段中的第12行)导入到您的每个page.module.ts (即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 { }这对我很有效。
https://stackoverflow.com/questions/43299610
复制相似问题