首页 > 解决方案 > 添加角度材料时,如果没有“新”,则无法调用类构造函数平台

问题描述

我有一个正在运行的小角度应用程序(v9.1.12)。我刚刚添加了角度材料:

ng add @angular/material

然后我创建了一个 Angular Material 模块:

import { NgModule } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';

@NgModule({

  exports: [
    MatButtonModule,
  ],
})
export class MaterialModule {}

然后

我在我的 app.module.ts 中引用它:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { MaterialModule } from './material.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        AppRoutingModule,
        MaterialModule,
        BrowserAnimationsModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

一旦我添加了这个引用,我就会在 chrome 中得到这个错误(但它仍然可以编译):

platform.js:78 Uncaught TypeError: Class constructor Platform cannot be invoked without 'new'
    at Module../node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/platform.js (platform.js:78)
    at __webpack_require__ (bootstrap:84)
    at Module../node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/a11y.js (a11y.js:1)
    at __webpack_require__ (bootstrap:84)
    at Module../node_modules/@angular/material/__ivy_ngcc__/fesm2015/core.js (core.js:1)
    at __webpack_require__ (bootstrap:84)
    at Module../node_modules/@angular/material/__ivy_ngcc__/fesm2015/button.js (button.js:1)
    at __webpack_require__ (bootstrap:84)
    at Module../src/app/material.module.ts (material.module.ts:1)
    at __webpack_require__ (bootstrap:84)

问题是什么?

标签: angularwebpackangular-material

解决方案


角度/材质版本中的问题。请更改角度/材质模块的版本。

您可以使用以下版本。

npm i @angular/material@9.2.4 --save

推荐阅读