现在我有一个自定义的管道创建的名为CurrConvertPipe
如何在全局声明管道以在不同的模块中使用?
import {Pipe, PipeTransform} from '@angular/core';
import {LocalStorageService} from './local-storage';
@Pipe({name: 'currConvert', pure: false})
export class CurrConvertPipe implements PipeTransform {
constructor(private currencyStorage: LocalStorageService) {}
transform(value: number): number {
let inputRate = this.currencyStorage.getCurrencyRate('EUR');
let outputputRate = this.currencyStorage.getCurrencyRate(localStorage.getItem('currency'));
return value/inputRate * outputputRate;
}
}
我需要在两个不同的模块来使用,
(i) Module1
(ii) Module2
,当我在模块1 1和Module2导入它说一个错误说它应该在更高级别的模块中声明。
,所以我必须声明里面的app.module.ts
import './rxjs-extensions';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { CurrConvertPipe } from './services/currency/currency-pipe';
@NgModule({
imports: [
BrowserModule,
FormsModule,
HttpModule,
AppRoutingModule,
Module1,
Module2
],
declarations: [
AppComponent,
CurrConvertPipe
],
providers: [
],
bootstrap: [AppComponent]
})
export class AppModule { }
但是,当我在模块1使用它,它抛出一个错误的管“currConvert”找不到
@Sajeetharan app.module _imports_'Module1'和'Module2',所以pipe在这些模块中不会被导入。如果您在'Module1'中导入'SharedModule',则管道将被导入到'SharedModule'中并导出到'Module1' – Ledzz