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
есть ли что-нибудь, что мне не хватает здесь?
Ответы
Ответ 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 { }
Это сработало для меня.