【问题标题】:Angular Material inject to Angular 2 projectAngular 材料注入 Angular 2 项目
【发布时间】:2017-04-10 19:12:31
【问题描述】:

Angular Material 添加到我基于Angular 2 构建的项目时遇到问题。编译项目时,返回此错误:

环境上下文中不允许使用初始化程序

像这样添加Angular Material

import {MaterialModule } from '@angular/material'

然后在imports

 MaterialModule.forRoot(),

安装
npm install --save @angular/material

还安装了hammerjs并添加到'angular-cli.json'中

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

这是我的全部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 { }

【问题讨论】:

  • 请告诉我们你在代码中做了什么?
  • 你的意思是 app.module.ts 吗?
  • 是的@yazpid app.module.ts

标签: angular angular-material


【解决方案1】:

最新的 beta3 发生了重大变化(假设您正在使用它)。这可能与您遇到但不确定的错误有关。您不再导入 Material Module,而是单独导入每个组件

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

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

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

另外,不需要通过 angular/cli 导入hammerjs,只需将 app.modules.ts 作为导入放入

import 'hammerjs';

【讨论】:

  • 我确实像上面那样,我有同样的问题
  • 您能否更新 OP 并显示您所做的更改以及现在的外观?
  • 不确定该错误是否与appmodules有关。你在某处声明一个类吗?您遇到的错误也相关吗? smth like this stackoverflow.com/questions/32750702/…
  • 此错误仅在我添加角度材料时发生。所有错误都与@angular/material 路径中的文件有关
  • @angular/material 路径中的文件在定义类时具有declare。这可能是个问题?
猜你喜欢
  • 1970-01-01
  • 2018-03-08
  • 2017-05-02
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 2018-03-19
  • 2018-06-01
  • 1970-01-01
相关资源
最近更新 更多