注:Angular-Cliは使用しません
OverlayModuleは、他の angular2-material コンポーネントに必要なようです。
zone.js:355 未処理の Promise 拒否: ./AppComponent クラス AppComponent のエラー - インライン テンプレート:2:2 原因: オーバーレイのプロバイダーがありません! ; ゾーン: ; タスク: Promise.then ; 価値:
angular2-material からすべてのパッケージをインストールしました。
systemjs.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',
},
angular2-material コンポーネントにsharedModuleを使用しているため、どこでも使用できます。
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>