我对Angular材质菜单模块有一点疑问。
我的 app.module.ts 中有以下代码:
import { SharedModule } from './shared/shared.module';
@NgModule({
declarations: [
// ...
],
imports: [
SharedModule,
],
})
export class AppModule { }
在我的 shared.module.ts 中:
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { MatMenuModule } from '@angular/material/menu';
import { ListDropdownComponent } from './list-dropdown/list-dropdown.component';
@NgModule({
declarations: [
ListDropdownComponent,
],
imports: [
MatMenuModule,
],
exports: [
ListDropdownComponent,
],
})
export class SharedModule { }
在我的 list-dropdown.component.ts 中:
import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';
@Component({
selector: 'app-list-dropdown',
templateUrl: './list-dropdown.component.html',
styleUrls: ['./list-dropdown.component.scss']
})
export class ListDropdownComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}
在 list-dropdown.component.html 中:
<button mat-icon-button [matMenuTriggerFor]="menu">
My dropdown menu
</button>
<mat-menu #menu="matMenu">
<!-- ... -->
</mat-menu>
然后我收到此错误消息:
Error: Export of name 'matMenu' not found!
我看不出问题出在哪里吗?
答案 0 :(得分:16)
我遇到了同样的问题,服务器重启后解决了该问题。
答案 1 :(得分:5)
我在单元测试中遇到了同样的问题。通过在测试包中添加 MatMenuModule 模块解决:
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [MatMenuModule],
declarations: [YOURCOMPONENT],
}).compileComponents();
});
答案 2 :(得分:3)
我遇到了同样的问题- 关闭您的终端并再次启动服务器(ng serve)。
答案 3 :(得分:1)
我今天遇到了这个问题,你需要做的就是在你使用 matMenu 的当前组件的模块中导入下面这一行
import { MatMenuModule } from '@angular/material/menu';