编辑:建议的解决方案是正确的,我不得不提到 SharedModule
必须导入到子组件的父组件中,该子组件使用DropDownDirective才能工作 .
我正在研究Angular 4应用程序,我想使用包含 DirectivesModule
的 SharedModule
优化其结构 . 我有一个组件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 回答
将
DirectivesModule
添加到您的导入中