这是shared
我在我的应用程序中共享的模块:
@NgModule({
imports: [
CommonModule,
ModalModule
],
declarations: [],
exports: [
ModalModule
]
})
export class SharedModule {}
该shared
模块导入ModalModule
:
import {ModalCloseDirective, ModalOpenDirective, ModalApiService, ModalCloseComponent} from './shared';
import {ModalComponent} from './modal.component';
@NgModule({
declarations: [
ModalCloseDirective,
ModalOpenDirective,
ModalComponent,
ModalCloseComponent
],
imports: [
CommonModule
],
exports: [
ModalCloseDirective,
ModalOpenDirective,
ModalComponent,
ModalCloseComponent
],
providers: [
ModalApiService
]
})
export class ModalModule {}
然后我有第三个模块,它导入SharedModule
(导出ModalModule
):
import {SharedModule} from '../../shared';
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule.forChild([
{
path: 'documentation',
component: DocumentationComponent,
children: [
{
path: '',
component: DocumentationListComponent
}
]
}
]),
SharedModule
],
declarations: [
DocumentationListComponent
],
exports: [
RouterModule
]
})
export class documentationModule {}
然后我有这个指令modalOpen
:
@Directive({
selector: '[modalOpen]'
})
export class ModalOpenDirective {
modalOpen: string;
constructor(private modalApi: ModalApiService) {}
@HostListener('click')
open(): void {
this.modalApi.open(this.modalOpen);
}
}
但是当我在DocumentationListComponent
's 模板中使用它时:
<span [(modalOpen)]="new-item">Add item</span>
我明白了:
Can't bind to 'modalOpen' since it isn't a known property of 'span'
为什么它在我的模板中找不到指令?
编辑:我想要的基本上是本指南中的一个功能模块:https ://angular.io/docs/ts/latest/guide/ngmodule.html