【问题标题】:Specifying routing from nested module Angular 2 via NPM package通过 NPM 包从嵌套模块 Angular 2 指定路由
【发布时间】:2026-01-27 15:05:01
【问题描述】:

我一直在尝试构建一个 Angular 2 应用程序。 我已经有了这个基本结构。

应用模块

  • 应用组件
  • App.Routing
  • App.template
  • App.module

我有另一个模块让我们说“SampleModule”作为一个 NPM 包,我在 App.module 文件中加载和导入

我现在的问题是在 App 路由中指定一个路由以指向“SampleModule”中的一个组件,比如说“SampleComponent”。

我尝试从 SampleModule 中公开组件,并尝试在 App 路由中导入此处。它没有用。它说,找不到名称 SampleComponent

非常感谢任何帮助。

【问题讨论】:

  • 你能提供你的代码吗??

标签: angular npm routing nested angular2-routing


【解决方案1】:

由于'SampleModule'是一个npm包,'SampleModule'的文件可以在node_modules文件夹(项目根路径)下找到。

首先通过向 SampleModule 添加以下行来导出 SampleComponet

@NgModule({
  declarations: [SampleComponet],
  exports: [SampleComponet] <== this line
})
export class SampleModule{}

然后在您的 App.module 中,导入“SampleModule”

import { SampleModule } from '/path_to_node_modules/path_to_sample_module/';

@NgModule({
  imports: [SampleModule],<== this line
})
export class AppModule{}

现在您可以通过以下 import 语句将“SampleComponent”直接导入您的 App.Routing

import { SampleComponent } from '/path_to_node_modules/path_to_componet/';

{ path: 'sample', component: SampleComponent }

注意:如果 SampleModule 有自己的路由并且定义如下

const routes: Routes = [~routings~]

    @NgModule({
      imports: [RouterModule.forChild(routes)],
      declarations: [SampleComponet],
      exports: [SampleComponet] <== this line
    })
    export class SampleModule{}

然后在您的应用路由器中使用以下代码

{
    path: 'sample',
    loadChildren: './path_to_node_modules/path_to_sample_module/sample.module#SampleModule'
}

【讨论】: