如何从使用里面某些指令的组件访问DirectivesModule?

时间:2017-08-10 11:22:54

标签: angular angular-directive ng-modules

已编辑:建议的解决方案是正确的,我不得不提到必须将SharedModule导入到子组件的父组件中,该子组件使用DropDownDirective才能工作。

我正在研究Angular 4应用程序,我想使用包含SharedModule的{​​{1}}来优化其结构。我有一个组件X,它使用DirectivesModule中的一个指令导入DirectivesModule,如下所示:

应用程序/ X.component.ts

SharedModule

在组件X的视图中,我正在使用如此指令:

import { SharedModule } from '../shared/shared.module';

该应用程序的结构如下:

<div class="col-xs-5 dropdown" appDropDown>

我在做什么,将DirectivesModule导入SharedModule,如下所示:

root
  -- X.component.ts
  -- shared
     -- shared.module.ts
     -- directives
        -- directives.module.ts
        -- dropdown.directive.ts

DirectivesModule导入和导出DropDownDirective如下:

import { CommonModule } from '@angular/common';
import { DirectivesModule } from './directives/directives.module';

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

然后, import { DropDownDirective } from './dropdown.directive'; ..... exports: [ DropDownDirective, ] 按照上述方式导入X.component。 问题是该指令不起作用。它应该对元素应用“打开”类但不执行它。

我不确定这是否是实现结构的正确方法,因此欢迎提出建议,并且非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

DirectivesModule添加到您的导入

@NgModule({
  imports: [
    CommonModule,
    DirectivesModule
  ], 
......