首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionic-3找不到管道

Ionic-3找不到管道
EN

Stack Overflow用户
提问于 2017-04-09 03:43:09
回答 2查看 12.8K关注 0票数 17

我刚刚升级到Ionic 3.0.1,所以我可以使用LazyLoading,因此我不能使用我的自定义Pipes

代码语言:javascript
复制
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中,我将其添加到声明中:

代码语言:javascript
复制
@NgModule({
  declarations: [
    ........,
    StripHTML
  ],
...

现在,当我试图在html模板中使用它时,它会出错:

代码语言:javascript
复制
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

我是不是漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-09 05:26:56

因此,我修复了这个问题,方法是创建一个PipesModule,将自定义Pipes导入其中,然后将其导入到我要使用它的页面module.ts

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { StripHTML } from './strip-html';

@NgModule({
  declarations: [
    StripHTML,
  ],
  imports: [

  ],
  exports: [
    StripHTML
  ]
})
export class PipesModule { }

然后以页面| HomePage为例:

代码语言:javascript
复制
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 { }

它确实工作得很好,不确定这是不是正确的方法,但它工作得很好,请让我知道是否有更好的方法……谢谢!

票数 30
EN

Stack Overflow用户

发布于 2017-08-02 19:14:48

您需要做的只是将PipesModule(下面代码片段中的第12行)导入到您的每个page.module.ts (即home.moodule.ts)文件中。

代码语言:javascript
复制
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 { }

这对我很有效。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43299610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档