无法绑定到“matMenuTriggerFor”,因为它不是“按钮”的已知属性
Posted
技术标签:
【中文标题】无法绑定到“matMenuTriggerFor”,因为它不是“按钮”的已知属性【英文标题】:Can't bind to 'matMenuTriggerFor' since it isn't a known property of 'button' 【发布时间】:2018-11-25 18:56:00 【问题描述】:我在尝试测试角度组件时遇到以下错误:
运行笑话测试时出错:
Can't bind to 'matMenuTriggerFor' since it isn't a known property of 'button'.
这是我的html:
<button mat-button [matMenuTriggerFor]="menu">Menu</button>
<mat-menu #menu="matMenu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>`
我在 package.json 中使用 "@angular/material": "6.1.0",
。
我还在TestBed
下的beforeAll
块中导入了所有必需的材料依赖项
我还尝试将按钮的属性从matMenuTriggerFor
更改为mat-menu-trigger-for
。没用。
请建议我如何修复此测试。
【问题讨论】:
【参考方案1】:在您的功能模块或该组件所在的模块中导入 MatMenuModule
。
import MatMenuModule from '@angular/material/menu';
和
imports: [
MatMenuModule
]
【讨论】:
【参考方案2】:我认为您需要将 MatMenuModule 导入添加到您的 app.module 文件中。
【讨论】:
【参考方案3】:随机但万一有人像我一样搜索:我正在导入自定义角度材料库并在构建材料库之前构建消耗库。当我首先构建材料库时,消耗库即将看到 MatMenuModule 并且错误消失了。
我变了
"library:build": "npm run ng7-common:build" && npm run ng8-material:build
到:
"library:build": " npm run ng8-material:build && npm run ng7-common:build"
【讨论】:
【参考方案4】:检查我在单词trigger
中有一个g
的拼写,这让我犯了这个错误
[matMenuTrigerData] => [matMenuTriggerData]
【讨论】:
【参考方案5】:我收到此错误(以及其他几个错误)是因为我未能将组件添加到 lib.module.ts
文件中的 declarations
数组中。
【讨论】:
【参考方案6】:我在运行jest
测试时遇到此错误。我必须在TestBed.configureTestingModule
的导入数组中添加MatMenuModule
才能解决此错误。
【讨论】:
【参考方案7】:如果在其他模块导入,则需要导出 MatMenuModule。
在你的模块中,放置:
... 出口:[MatMenuModule], ...
【讨论】:
以上是关于无法绑定到“matMenuTriggerFor”,因为它不是“按钮”的已知属性的主要内容,如果未能解决你的问题,请参考以下文章
无法将 [(ngModel)] 绑定到 Angular html