首页 文章

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

提问于
浏览
1

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

我正在研究Angular 4应用程序,我想使用包含 DirectivesModuleSharedModule 优化其结构 . 我有一个组件X,通过导入 SharedModule 使用 DirectivesModule 中的一个指令,如下所示:

应用程序/ X.component.ts


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

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

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

该应用程序的结构如下:

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

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

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

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

DirectivesModule导入和导出DropDownDirective如下:

import { DropDownDirective } from './dropdown.directive';
   .....
    exports: [
     DropDownDirective,
   ]

然后, SharedModule 按上述方式导入X.component . 问题是指令没有打开't work. It should apply a class ' t .

我不确定这是否是实现结构的正确方法,因此建议的更改是受欢迎的,任何帮助将不胜感激 .

1 回答

  • 1

    DirectivesModule 添加到您的导入中

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

相关问题