我们正试图在我们公司建立我们自己的表单-字段-组件。我们试图这样包装材料设计的组成部分:
字段:
<mat-form-field>
<ng-content></ng-content>
<mat-hint align="start"><strong>{{hint}}</strong> </mat-hint>
<mat-hint align="end">{{message.value.length}} / 256</mat-hint>
<mat-error>This field is required</mat-error>
</mat-form-field>
文本框:
<field hint="hint">
<input matInput
[placeholder]="placeholder"
[value]="value"
(change)="onChange($event)"
(keydown)="onKeydown($event)"
(keyup)="onKeyup($event)"
(keypress)="onKeypress($event)">
</field>
用法:
<textbox value="test" hint="my hint"></textbox>
这大致会导致以下结果:
<textbox placeholder="Personnummer/samordningsnummer" value="" ng-reflect-placeholder="Personnummer/samordningsnummer">
<field>
<mat-form-field class="mat-input-container mat-form-field">
<div class="mat-input-wrapper mat-form-field-wrapper">
<div class="mat-input-flex mat-form-field-flex">
<div class="mat-input-infix mat-form-field-infix">
<input _ngcontent-c4="" class="mat-input-element mat-form-field-autofill-control" matinput="" ng-reflect-placeholder="Personnummer/samordningsnummer" ng-reflect-value="" id="mat-input-2" placeholder="Personnummer/samordningsnummer" aria-invalid="false">
<span class="mat-input-placeholder-wrapper mat-form-field-placeholder-wrapper"></span>
</div>
</div>
<div class="mat-input-underline mat-form-field-underline">
<span class="mat-input-ripple mat-form-field-ripple"></span>
</div>
<div class="mat-input-subscript-wrapper mat-form-field-subscript-wrapper"></div>
</div>
</mat-form-field>
</field>
</textbox>
但是我在控制台中得到“mat-form-field必须包含一个MatFormFieldControl”。我想这与不直接包含matInput-field的mat-form-field有关。但它包含它,它只是在ng内容投影中。
这是一场闪电战:https://stackblitz.com/edit/angular-xpvwzf
在模块中导入MatInputModule。ts文件,它将解决问题。
import { MatInputModule } from '@angular/material/input';
后面的陈述是老答案。
遗憾的是,还不支持将内容投影到mat表单字段
中。请跟踪以下github问题以获取有关它的最新消息。
到目前为止,您唯一的解决方案是将内容直接放入< code>mat-form-field组件,或者实现一个< code>MatFormFieldControl类,从而创建一个自定义的表单域组件。
将MatInputModule
和MatFormFieldModule
导入模块内部,即
import { MatInputModule } from '@angular/material/input';
import { MatFormFieldModule } from "@angular/material/form-field";
@NgModule({
imports: [
MatFormFieldModule,
MatInputModule
]
})
export class AppModule { }
请务必添加 matInput
,并且区分大小写。
<mat-form-field>
<input matInput type="text" />
</mat-form-field>
检查您在输入
标签上没有任何条件在任何情况下都是假的,因为mat-form-field
在其中查找matIn的
。而是将*ngIF
放在mat-form-field
标签上。
<mat-form-field>
<input matInput *ngIf="someCondition"> // don't add condition here, else add in mat-form-field tag
</mat-form-field>
感谢@William Herrmann指出了第三个问题
如果angular编译器在修复上述问题后仍然给出错误,那么你必须重新启动应用程序。
ng serve
我有这个问题。我在主模块中导入了< code>MatFormFieldModule,但是忘记了将< code>MatInputModule添加到< code>imports数组中,如下所示:
import { MatFormFieldModule, MatInputModule } from '@angular/material';
@NgModule({
imports: [
MatFormFieldModule,
MatInputModule
]
})
export class AppModule { }
更多信息在这里。
我正在处理Angular表单,我试图验证一个反应性表单。对于模板,我在项目中使用材料设计, 我在文本框中输入条件ngIf进行验证时出错 错误是-: ERROR错误:mat-form-field必须包含一个MatFormFieldControl。 请看-: 为了消除这个问题,我已经在文件2中导入了module.ts的MatInputMoules。已添加您必须将matInput添加到输入 但还是出现了
我想按照本指南实现一个角度材质自定义表单字段:https://material.angular.io/guide/creating-a-custom-form-field-control 但我一直有这样的错误:错误:mat表单字段必须包含MatFormFieldControl。 根据文件: 如果没有将表单字段控件添加到表单字段,则会出现此错误。如果表单字段包含本机或元素,请确保已向其添加matIn
有人知道如何编写正则表达式模式吗? 假设我有一组字母,比如 还有一个单词Alabama,我希望preg_match返回true,因为它包含两次字母a和B。但是单词Ab应该返回false,因为这个单词中没有两个a。 有什么想法吗? 编辑:我尝试的唯一模式是[a,b,a],但它会在每个包含其中一个字母的单词上返回true,并且不会检查是否出现多个字母
主要内容:PHP - 必需字段,PHP - 显示错误信息本章节我们将介绍如何设置表单必需字段及错误信息。 PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"名字", "E-mail", 和 "性别" 字段是必需的,各字段不能为空。 字段 验证规则 名字 必需。 + 只能包含字母和空格 E-mail 必需。 + 必需包含一个有效的电子邮件地址(包含"@"和".") 网址 可选。 如果存在,它必需包含一个有效的URL 备注 可选。多
null null null 我只是不知道如何将两者结合起来,这样小数点后才是强制性的。 我如何解决这个问题?
问题内容: 我正在尝试基于REST API Ang AngularJS构建应用程序。我一直在关注本教程http://npmasters.com/2012/11/25/Symfony2-Rest- FOSRestBundle.html, 但是必须更改一些详细信息(折旧的方法),现在当我发布创建新实体时, “此表单不应包含其他字段”错误。 我的TaskType表格: 在我看来,现在我只渲染一种形式,但