angular - ERROR 错误:mat-form-field 必须包含 MatFormFieldControl.- 对于拖放
问题描述
我收到 ans 错误 - ERROR 错误:mat-form-field 必须包含 MatFormFieldControl。
这不是因为缺少导入/导入,但它似乎需要一个控件并且 cdkDrop 不被视为一个字段。
请任何关于如何在角材料中使用拖放的想法..或者我需要将所有组件切换到cdk吗?
<mat-form-field>
<mat-label>{{ todo.somekey}}</mat-label>
<div *ngIf="!todo.options">
<input matInput name="meeting" [(ngModel)]="todo.meeting[0]" placeholder="Last name, First name">
</div>
<div *ngIf="todo.options">
<div cdkDropList cdkDropListOrientation="horizontal" class="example-list" (cdkDropListDropped)="drop($event)">
<div class="example-box" name="meeting" [(ngModel)]="todo.meeting" *ngFor="let meeting of todo.meeting" cdkDrag>{{meeting}}</div>
</div>
</div>
</mat-form-field>
我的修复/解决方法:
我接受了使用可见性属性的建议,但必须将其添加到 mat-form 字段。实际的想法是只隐藏输入......但现在还可以
<mat-form-field [style.visibility]="this.that.length == 0 ? 'visible' : 'hidden'">
<mat-label>{{ .... }}</mat-label>
<div ><input matInput ....>
</div>
</mat-form-field>
<div [style.visibility]="....length > 0 ? 'visible' : 'hidden'">
<mat-label>{{ ... }}</mat-label>
<div cdkDropList [cdkDropListData]="..options" cdkDropListOrientation="horizontal" class="example-list" (cdkDropListDropped)="drop($event, q)">
<div class="example-box" *ngFor="let ..." cdkDrag>{{option}}</div>
</div>
</div>
解决方案
mat-FormFiled需要一个 MatFormFieldControl (一个 mat-input 或一个输入),因为你有一个*ngIf
你收到这个错误
无论如何,我不明白[(ngModel)]="todo.meeting"
div 中的内容????
注意:如果您需要有 matInput,您可以[style.visibility]="condition?'hidden':null
改用*ngIf="condition"
推荐阅读
- python-3.x - SyntaxError:解析 ast.literal_eval() 时出现意外 EOF
- spring - 如何使用 http url 从远程位置加载 i18 文件?
- cocoapods - Cocoapods - 我无法在我的 Mac 上安装 cocoapods。我正在按照 cocoapods.org 的步骤安装 cocoapods
- java - 尝试从 Servlet 连接时,Tomcat 看不到我的 CONTEXT.XML,我也使用 IDEA Intellij
- c# - CLR 类型到 EDM 类型的映射不明确,因为多个 CLR 类型
- java - 为什么标记为最终或静态的字段未保存在数据库中
- python - Ubuntu 18.04 python 2.7 urllib 请求未获取数据
- python - django:在我的网页中查看 python 脚本的结果
- raspberry-pi - 树莓派零和迷你热敏打印机问题
- swift - spritekit 无法从后台状态打印