4

我有 2 个页面,有 2 个模块,并尝试使用相同的管道,所以我在每个页面中声明了相同的管道。

listview.module.ts

import { DateTimePipe } from '../pipes/dateTime.pipe';

declarations: [ListviewPage, DateTimePipe,]

profile.module.ts

import { DateTimePipe } from '../pipes/dateTime.pipe';

declarations: [ProfilePage, DateTimePipe]

为此,我遇到了这个问题:

错误错误:未捕获(承诺):错误:类型 DateTimePipe 是 2 个模块声明的一部分:ListviewPageModule 和 ProfilePageModule!请考虑将 DateTimePipe 移至导入 ListviewPageModule 和 ProfilePageModule 的更高模块。您还可以创建一个新的 NgModule,它导出并包含 DateTimePipe,然后在 ListviewPageModule 和 ProfilePageModule 中导入该 NgModule。错误:类型 DateTimePipe 是 2 个模块声明的一部分:ListviewPageModule 和 ProfilePageModule!请考虑将 DateTimePipe 移至导入 ListviewPageModule 和 ProfilePageModule 的更高模块。您还可以创建一个新的 NgModule,它导出并包含 DateTimePipe,然后在 ListviewPageModule 和 ProfilePageModule 中导入该 NgModule。

我尝试在 app.module.ts 中声明它但不起作用。

谢谢

4

2 回答 2

6

您需要创建一个共享模块,将管道放在该模块中,然后根据需要将共享模块导入其他位置。

共享模块.ts

import { NgModule } from '@angular/core';
import { DateTimePipe } from '../pipes/dateTime.pipe';
import { CommonModule } from '@angular/common';  

@NgModule({
    imports: [
        CommonModule
    ],
    declarations: [
        DateTimePipe
    ],
    exports: [
        DateTimePipe
    ]
})
export class SharedModule {}

listview.module.ts

...
imports: [SharedModule]
...

profile.module.ts

...
imports: [SharedModule]
...
于 2018-08-09T16:04:22.567 回答
0
import { NgModule } from '@angular/core';
import { DateTimePipe } from '../pipes/dateTime.pipe';
import { CommonModule } from '@angular/common';  

@NgModule({
    imports: [
        IonicModule,
        CommonModule
    ],
    declarations: [
        DateTimePipe
    ],
    exports: [
        DateTimePipe
    ]
})
export class SharedModule {}

然后跟随@Shannon 回答。ionic4应用程序需要 IonicModule。

于 2019-07-07T08:43:05.817 回答