如何在另一个模块/路由器中使用组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在另一个模块/路由器中使用组件相关的知识,希望对你有一定的参考价值。

我正在尝试使用另一个模块中的另一个组件,但它不能在我的路由器插座中工作。

app.module

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { MainModule } from './main/main.module';
import { AppComponent } from './app/app.component';
import { KeypadComponent } from './keypad/keypad.component;
import { routing } from './app.routing';

@NgModule({
  declarations: [
    AppComponent,
    MainComponent,
    KeypadComponent
  ],
  imports: [
    BrowserModule,
    CommonModule,
    MainModule,
    routing
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

main.module

import { NgModule } from '@angular/core';
import { routing } from '../app.routing';

import { ProductComponent } from './product/product.component';

@NgModule({
  imports: [
    routing
  ],
  declarations: [ProductComponent]
})
export class MainModule { }

我的问题是,当我尝试在product.component.html中调用键盘组件时,它会给我一个错误,表明它不存在。但是,当我在我的main.component.html中调用它时,它工作正常。

答案

如果应用程序模块和主模块应使用您的组件,则应将其放入主模块或其他共享模块中。以下示例显示如何使用共享模块。

AppModule声明

@NgModule({
  declarations: [
    AppComponent,
    MainComponent,
  ],
  imports: [
    CommonModule,
    MainModule,
    SharedModule,
    routing
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

MainModule声明

@NgModule({
  imports: [
    CommonModule,
    routing,
    SharedModule
  ],
  declarations: [ProductComponent]
})
export class MainModule { }

SharedModule声明

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

以上是关于如何在另一个模块/路由器中使用组件的主要内容,如果未能解决你的问题,请参考以下文章

在另一个组件 V6 中反应路由

如何使用导航架构组件修复动态功能模块中片段的发布版本中的ClassNotFoundException?

如何在另一个片段中访问和使用一个片段的按钮?

如何在另一个片段中使用 YouTubePlayerFragment 加载 YouTubePlayer? (安卓)

从模块中导出的角度组件在另一个模块中不可用

如何在另一个片段内膨胀另一个布局