Подтвердить что ты не робот

Ionic-3 Не удается найти трубку

Я только что обновил до 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/[email protected]:17

есть ли что-нибудь, что мне не хватает здесь?

4b9b3361

Ответ 1

поэтому я исправил эту проблему, создав 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 { }

и он отлично работает, не уверен, что это правильный способ или нет, но он работал нормально, пожалуйста, дайте мне знать, если есть лучший способ... спасибо!

Ответ 2

Что вам нужно сделать, это просто импортировать PipesModule (строка 12 в нижеприведенном фрагменте) в каждый файл page.module.ts(ie 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 { }

Это сработало для меня.