Невозможно загрузить общие директивы NgModule в другие NgModules
Следуя этомуобсуждение, где у меня была та же проблема: я не мог импортировать директивы angular2-materialize более чем в одном модуле, без сообщения об ошибке «Тип X является частью объявлений 2 модулей»
Я решил следовать приведенному решению: поместите angular2-materialize в собственный модуль, затем импортируйте модуль в мой AppModule и ChildrenModule.
Так что мойMaterializeModule :
import { NgModule } from '@angular/core';
// Import Materialize CSS + Directives, like indicated in the readme
// https://github.com/InfomediaLtd/angular2-materialize
import 'materialize-css';
import 'angular2-materialize';
import { MaterializeDirective } from 'angular2-materialize';
@NgModule({
declarations: [ MaterializeDirective ]
})
export class MaterializeModule {
}
мойAppModule :
import { MaterializeModule } from './shared/materialize.module';
@NgModule({
bootstrap: [ AppComponent ],
declarations: [
AppComponent,
HeaderComponent,
FooterComponent,
NoContentComponent
],
imports: [ // import Angular's modules
BrowserModule,,
FormsModule,
HttpModule,
MaterializeModule,
RouterModule.forRoot(ROUTES, { useHash: false })
],
providers: [ // expose our Services and Providers into Angular's dependency injection
ENV_PROVIDERS,
APP_PROVIDERS
]
})
export class AppModule {}
И мойChildrenModule :
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
// Import shared modules
import { MaterializeModule } from '../shared/materialize.module';
// Import child routes
import { detailsRouting } from './details.routing';
// Import app modules
import { DetailsComponent} from './details.component';
@NgModule({
imports: [
BrowserModule,
MaterializeModule,
detailsRouting
],
declarations: [
DetailsComponent
]
})
export class ChildrenModule { } //
И чтобы закончить, в обоих модулях я просто поместил шаблон с модальным MD:
<a materialize="leanModal" [materializeParams]="[{dismissible: false}]" class="waves-effect waves-light btn modal-trigger blue" href="#missionAccept">
<i class="material-icons left">check</i>Accepter
</a>
Я думал, что это определенно решит мою проблему, но нет.
Я имею :
can't bind to 'materializeParams' since it isn't a known property of 'a'
как никогда не импортировал MaterializeDirective.
Я занимаюсь этим вопросом с незапамятных времен, откуда он?
редактировать
Это решило мою проблему:
в моем MaterializeModule никогда не забывайте экспортировать директивы:
@NgModule({
...
exports: [ MaterializeDirective ]
})