Ionic 4中2个模块的声明

时间:2018-08-09 15:02:45

标签: declaration ionic4

我有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是以下两个模块的声明的一部分: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中声明它,但不起作用。

谢谢

2 个答案:

答案 0 :(得分:1)

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

SharedModule.ts

$(".status").onchange(function() {
  var value1 = $(this).val();
  var value2 = $(this).data('record_id');

  $.ajax({
    type: "POST",
    url: "status.php",
    data: {
      record_id: value1,
      value: value2
    }
  })
});

listview.module.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 {}

profile.module.ts

...
imports: [SharedModule]
...

答案 1 :(得分: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