【发布时间】:2016-09-01 18:29:15
【问题描述】:
在discussion 之后,我遇到了同样的问题:我无法在多个模块中导入 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 ]
})
【问题讨论】:
标签: angular module angular2-directives