类型页面是2个模块错误声明的一部分

时间:2019-09-24 21:28:55

标签: javascript angular typescript ionic-framework ionic4

我想在多个页面中使用相同的模式。但是我收到这个错误,即页面的类型是2个模块的声明的一部分。我知道已经存在类似的问题(Component is part of the declarations of 2 modules in Angular),但是我无法使用它,因为我不是在使用模块,而是在使用页面。

page.module.ts用作模型

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';

import { IonicModule } from '@ionic/angular';
import { ComponentsModule } from '../components/components.module';

import { FilterPage } from './filter.page';

const routes: Routes = [
  {
    path: '',
    component: FilterPage
  }
];

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    IonicModule,
    RouterModule.forChild(routes),
    ComponentsModule
  ],
  declarations: [FilterPage],
  exports:  [FilterPage]
})
export class FilterPageModule {}

用作模型出现位置的两个page.module.ts中的一个

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { FilterPage } from '../filter/filter.page'

import { IonicModule } from '@ionic/angular';

import { FriendsPage } from './friends.page';


const routes: Routes = [
  {
    path: '',
    component: FriendsPage
  }
];

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    RouterModule.forChild(routes),

  ],
  declarations: [FriendsPage, FilterPage],
  entryComponents:  [FilterPage]
})
export class FriendsPageModule {}

1 个答案:

答案 0 :(得分:1)

您应该创建一个名为shared或任意名称的文件夹。将pipesdirectivescomponentsmodals移至{{ 1}}文件夹。然后在此文件夹中创建一个shared。 您的设置应如下所示。

shared.module.ts

然后将const COMPONENTS=[ FilterPage ]; @NgModule({ exports:[...COMPONENTS,...PIPES,...DIRECTIVES], declarations:[...COMPONENTS,...PIPES,...DIRECTIVES], entryComponents:[...COMPONENTS] }) export class SharedModule{ } 导入要在内部使用的模块。

SharedModule