【发布时间】:2017-02-02 06:51:31
【问题描述】:
注意:我不使用 Angular-Cli
OverlayModule 似乎是其他 angular2-material 组件所必需的。
zone.js:355 未处理的承诺拒绝:./AppComponent 类中的错误 AppComponent - 内联模板:2:2 原因:没有覆盖提供者! ;区域:;任务:Promise.then;价值:
我已经从 angular2-material 安装了所有包。
sytemjs.config.js
map: {
// our app is within the app folder
app: 'dist',
...
...
'@angular2-material/core': 'npm:@angular2-material/core/core.umd.js',
'@angular2-material/button': 'npm:@angular2-material/button/button.umd.js',
'@angular2-material/menu': 'npm:@angular2-material/menu/menu.umd.js',
'@angular2-material/icon': 'npm:@angular2-material/icon/icon.umd.js',
_____________________________________________________________________
/*>>>>> DO I NEED TO MAP ANYTHING FOR OVERLAY HERE? <<<<<< */
______________________________________________________________________
// other libraries
'rxjs': 'npm:rxjs',
'angular2-in-memory-web-api': 'npm:angular2-in-memory-web-api',
},
我将 sharedModule 用于 angular2-material 组件,以便它们在任何地方都可用。
shared.module.ts
import {MdButtonModule } from '@angular2-material/button';
import {MdIconModule} from '@angular2-material/icon';
import {MdMenuModule} from '@angular2-material/menu';
import {MdIconRegistry} from '@angular2-material/icon';
@NgModule({
imports: [ CommonModule ],
declarations: [],
exports: [ CommonModule,MdButtonModule,MdMenuModule,MdIconModule],
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [ MdIconRegistry ] //>>>>> DO I NEED TO ADD ANYTHING HERE ??
};
}
}
App.Module.ts
@NgModule({
imports: [ BrowserModule,SharedModule.forRoot()],
...
})
HTML:
<button md-icon-button [md-menu-trigger-for]="menu">
<md-icon>more_vert</md-icon>
</button>
<md-menu #menu="mdMenu">
<button md-menu-item> Refresh </button>
<button md-menu-item> Settings </button>
<button md-menu-item> Help </button>
<button md-menu-item disabled> Sign Out </button>
</md-menu>
<button md-raised-button>Button</button>
【问题讨论】:
-
你能发布你的html吗?
-
用 HTML 更新了我的问题。
-
github.com/jelbourn/material2-app/blob/master/src/app/… 在这里他们导入
OverlayModule就像:import {OverlayModule} from '@angular2-material/core/overlay/overlay-directives';如果我尝试在 sharedModule 中做同样的事情,它会抛出错误,例如:http://localhost:3000/node_modules/@angular2-material/core/core.umd.js/overlay/overlay-directives 404 (Not Found)。我觉得我需要systemjs.config.js中的map something但最近发现 OverlayModule 没有umd.js所以无法在系统文件中映射任何内容。