简体   繁体   English

Angular Material注入Angular 2项目

[英]Angular Material inject to Angular 2 project

Have problem with add Angular Material to my project which is build on Angular 2 . Angular Material添加到我的基于Angular 2项目中时Angular 2 When project is compiled, return this error : 编译项目时,返回此错误:

initializers are not allowed in ambient contexts 在环境中不允许使用初始化程序

Add Angular Material like this : 像这样添加Angular Material

import {MaterialModule } from '@angular/material'

And then in imports 然后在imports

 MaterialModule.forRoot(),

Installed by 安装者

npm install --save @angular/material

Also installed hammerjs and added into 'angular-cli.json' 还安装了Hammerjs并添加到“ angular-cli.json”中

 "../node_modules/hammerjs/hammer.min.js"

It's my all app.module.ts 这是我所有的app.module.ts

import {NgModule, NgModuleFactoryLoader, SystemJsNgModuleLoader} from 
'@angular/core';
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import 'hammerjs';

//ui-router
import {UIRouterModule, UIView} from 'ui-router-ng2';
import {APP_STATES} from './app.states';
import {routerConfigFn} from './router.config';

//angular material
import {MdButtonModule, MdCheckboxModule} from '@angular/material';

import { AppComponent } from './app.component';
import { UserComponent } from './user/user.component';
import { DashboardComponent } from './dashboard/dashboard.component';

@NgModule({
   declarations: [
    AppComponent,
    UserComponent,
    DashboardComponent
  ],
  imports: [
     BrowserModule,
     FormsModule,
     HttpModule,
     MdButtonModule,
     MdCheckboxModule,
     UIRouterModule.forRoot({
        states: APP_STATES,
        useHash: true,
        otherwise: {state: 'public'},
        config: routerConfigFn,
        }),
    ],
    providers: [{provide: NgModuleFactoryLoader, useClass: 
    SystemJsNgModuleLoader}],
    bootstrap: [UIView]
   })

 export class AppModule { }

There has been significant changes in the latest beta3 (assuming you are using that). 最新的beta3中发生了重大变化(假设您正在使用该版本)。 It could be related to an error you are having but not sure. 这可能与您遇到但不确定的错误有关。 You don't import Material Module anymore, instead you import each component individually 您不再导入材料模块,而是分别导入每个组件

https://github.com/angular/material2/blob/master/guides/getting-started.md https://github.com/angular/material2/blob/master/guides/getting-started.md

import {MdButtonModule, MdCheckboxModule} from '@angular/material';

@NgModule({
  ...
  imports: [MdButtonModule, MdCheckboxModule],
  ...
})
export class PizzaPartyAppModule { }

Also, no need to import hammerjs via angular/cli just put in in app.modules.ts as an import 另外,无需通过角度/ cli导入hammerjs,只需将其放入app.modules.ts中作为导入即可。

import 'hammerjs';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM