结构化指令和延迟加载的模块继承

时间:2019-07-17 12:35:19

标签: angular angular2-directives angular-directive

我正在构建一些在某些模块中使用的结构指令。 目前,我嵌套了延迟加载的模块,这些模块依赖于其父模块的某些路由。

简而言之,我有一个名为company的父模块,该模块使用根URL :company,而后者又懒加载了一个使用URL projects的模块:company/projects/

我的问题是:我有一个结构指令,该指令取决于company模块中提供的服务。但是,我也希望在我的projects模块中使用此指令。我应该如何处理?目前,我收到控制台错误:

Can't bind to 'ifCompanyPermission' since it isn't a known property

我应该如何使指令跨模块工作?我已经测试过,这些指令在每个模块中都可以正常工作。

如何加载模块的示例(这些路由属于company模块):

const routes: Routes = [
  {
    path: ':company',
    component: CompanyComponent,
    children: [
      {
        path: '',
        component: IndexComponent,
        canActivate: [PermissionGuard],
      },
      {
        path: 'projects',
        loadChildren: '../projects/projects.module#ProjectsModule',
      },
    }
  }
];

快速修复: 只需将指令移至我的shared模块即可。但是,我想知道是否可以共享给子模块。

更新: 我在shared模块中有结构性指令时注意到一个问题。每当我需要companyprojects模块中的服务时,它都会创建自己的服务实例。因此,不会使用与companyprojects模块本身相同的服务实例。与Angular文档中的this page相关。

0 个答案:

没有答案