これは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
) 3番目のモジュールがあります。
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
のテンプレート内で使用すると:
<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