未捕获的错误:模块“MyMaterialModule”导入的意外指令“angular-material”。请添加 @NgModule 注释。角 5

Posted

技术标签:

【中文标题】未捕获的错误:模块“MyMaterialModule”导入的意外指令“angular-material”。请添加 @NgModule 注释。角 5【英文标题】:Uncaught Error: Unexpected directive 'angular-material' imported by the module 'MyMaterialModule'. Please add a @NgModule annotation. angular 5 【发布时间】:2018-05-08 08:17:47 【问题描述】:

我一直有这个错误

未捕获的错误:模块“MaterialModule”导入了意外的指令“MatPaginator”。请添加@NgModule 注解。

这是我的材料模块

import  NgModule, ViewChild  from '@angular/core';
import  CommonModule  from '@angular/common';
import  MatPaginator, MatSort, MatTableDataSource,MatButtonModule, 
MatTableModule  from '@angular/material';

@NgModule(
    imports: [MatButtonModule,MatTableModule,
              MatPaginator, MatSort, 
              MatTableDataSource],
    exports: [MatButtonModule,MatTableModule,MatPaginator, MatSort, 
             MatTableDataSource],
)
export class MaterialModule  

这是我的 app.module

...
import  MaterialModule  from './material.module';


@NgModule(
  declarations: [
     ...

  ],
  imports: [
    ...
    MaterialModule,
    ...
  ],
  providers: [...],
  bootstrap: [ AppComponent]
)
export class AppModule  

这也是我的看法

<div class="example-container mat-elevation-z8">
   <div class="example-header">
     <mat-form-field>
      <input matInput (keyup)="applyFilter($event.target.value)" 
    placeholder="Filter">
    </mat-form-field>
  </div>

<!-- Name Column -->
<ng-container matColumnDef="name">
  <mat-header-cell *matHeaderCellDef> Name </mat-header-cell>
  <mat-cell *matCellDef="let user"> user.name </mat-cell>
</ng-container>

<!-- Weight Column -->
<ng-container matColumnDef="email">
  <mat-header-cell *matHeaderCellDef> email </mat-header-cell>
  <mat-cell *matCellDef="let user"> user.email </mat-cell>
</ng-container>

<!-- Color Column -->
<ng-container matColumnDef="phone">
  <mat-header-cell *matHeaderCellDef> phone </mat-header-cell>
  <mat-cell *matCellDef="let user"> user.phone </mat-cell>
</ng-container>

<ng-container matColumnDef="company">
  <mat-header-cell *matHeaderCellDef> company </mat-header-cell>
  <mat-cell *matCellDef="let user"> user.company.name </mat-cell>
</ng-container>

<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>

我从angular material documentation 拿走了它,我该如何解决?

【问题讨论】:

我会导入MatPaginatorModule 我已经导入了,还是出现这个错误 您是否从imports 中删除了MatPaginator 是的,我会更新帖子 我从 Angular Material 文档中获取了它 【参考方案1】:

我遇到了同样的问题。我将@NgModule 中的MatPaginatorModule 导入到导入数组中。 它解决了我的问题。我希望它也对你有用。

【讨论】:

【参考方案2】:

您正在导入 MatPaginator 模块,如果要导入 MatPaginator 请导入 MatPaginatorModule 模块。有同样的问题,这对我有用。

喜欢:

// material.module.ts

import  NgModule  from '@angular/core';
import  MatTableModule  from '@angular/material/table';
import  MatPaginatorModule  from '@angular/material/paginator';

@NgModule(
    imports: [
        MatTableModule,
        MatPaginatorModule
    ],
    exports: [
        MatTableModule,
        MatPaginatorModule
    ]
)

export class MaterialModule  

【讨论】:

【参考方案3】:

您应该导入 MatPaginator 模块,但您正在导入 MatPaginator,在您的 MaterialModule 中更改它就完成了。

感谢。

【讨论】:

【参考方案4】:

常量 MaterialModules = [ MatButton模块, MatToolbar模块, MatIcon模块, MatDialog模块, MatCard模块, MatPaginator 模块 ]

这些是模块,我从材料中导入和导出模块,但不是单个组件或按钮等。(最通用)

我相信 MatPaginatorModule 是您需要导入的模块,它将为您的案例提供所有必需的指令或组件

【讨论】:

以上是关于未捕获的错误:模块“MyMaterialModule”导入的意外指令“angular-material”。请添加 @NgModule 注释。角 5的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的错误注入器 modulerr 模块错误

未捕获的错误:尚未为上下文加载模块名称“电子”:_。使用要求([])

Summernote 和 Electron:未捕获的错误:找不到模块“jquery”

未捕获的错误:模块“AppModule”导入的意外指令“MatFormField”。请添加@NgModule 注释

未捕获的错误:找不到模块 - Ionic 2

未捕获的错误:找不到模块“typeorm”