我有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中声明它,但不起作用。
谢谢
答案 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 。