Angular Library - 从父app继承

时间:2017-06-14 14:09:48

标签: angular

基本上我已经创建了一个库来帮助我的角度代码可以重用于未来的应用程序。该库将被导入并位于node_modules目录中。

此库中的组件需要引用父应用程序中的 route.config.js 文件。

我正在努力弄清楚如何从父应用程序继承此文件或在导入的库模块中引用它。

还值得注意的是我正在使用带有AOT编译的Angular4,因此无法通过绝对路径指向该文件,如下所示:

import {routing} from '../../../../../app/route.config';

在开发图书馆期间,route.config.ts文件/路径也不存在。

任何想法都会受到大力赞赏。

软解决方案:

对于此特定示例,路由配置详细信息存储在Array中。 e.g。

const routes: Routes = [
  {
    path: 'dashboard',
    component: DashboardComponent,
    canActivate: [canActivateRoute],
    data: { }
  },

通过这个,我能够通过 @Input 在需要它的组件上传递数组。

图书馆中的子组件:

export class NavComponent implements OnInit, AfterViewInit {
  @Input() routing: any;
父母的

.html文件:

 <navigation [ngClass]="{ 'hidden': !_isLoggedIn }" routes="routing">

我已经将此标记为软解决方案,理想情况下我需要引用整个组件,但是现在这样做了。

1 个答案:

答案 0 :(得分:0)

您应该从共享库中导入导出的模块或组件。

假设您的共享库已导出 USERSharedModule

<强> SharedModule

@NgModule({
  exports: [USERSharedModule]
})

您应该在代码中导入USERSharedModule模块。

在您的应用中

<强> app.module.ts

import { USERSharedModule} from '@route/Shared';