2017-07-04 62 views
4

我在AppModule中有RoomsComponent,它的路线是/ rooms。 另外我有一个懒惰加载模块CompaniesModule与组件CompaniesComponent的路线/公司。使用来自Angular 4中另一个模块的组件

我试图在AppModule中重新使用RoomsComponent时,建立像/ companies/{company_id}/rooms /的路线。

我不能做很长时间RoomsComponent没有在CompaniesModule中声明,但是这会引发错误,因为组件不能在多个模块中声明。

+0

查看https://stackoverflow.com/questions/39601784/angular-2-use-component-from-another-module/39601837#39601837 – yurzui

回答

15

在共享模块中声明RoomsComponent,然后将该共享模块导入到需要它的模块中。以下是我的一个共享模块的示例:

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { FormsModule } from '@angular/forms'; 

import { StarComponent } from './star.component'; 

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

请注意,我的StarComponent已在此处声明并导出。然后,它可以用于导入此共享模块的模块中声明的任何组件。

+0

好的,但如何在另一个模块中使用该组件,如果我们不申报? – sandum

+0

如果它在一个导出它的模块中声明...并且我们导入该模块......这就是我们需要的。有关模块的更多信息,请参阅此视频:https://www.youtube.com/watch?v=ntJ-P-Cvo7o&t=2s – DeborahK

+0

或者Angular文档在这里:https://angular.io/guide/ngmodule#shared -modules – DeborahK

相关问题