我们正在努力在公司建立自己的表格 - 组件.我们试图像这样包装材料设计的组件:
领域:
<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>
Run Code Online (Sandbox Code Playgroud)
文本框:
<field hint="hint">
<input matInput
[placeholder]="placeholder"
[value]="value"
(change)="onChange($event)"
(keydown)="onKeydown($event)"
(keyup)="onKeyup($event)"
(keypress)="onKeypress($event)">
</field>
Run Code Online (Sandbox Code Playgroud)
用法:
<textbox value="test" hint="my hint"></textbox>
Run Code Online (Sandbox Code Playgroud)
这导致大致如下:
<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> …Run Code Online (Sandbox Code Playgroud) 这个mat-select元素很有趣.见下文.
码
<mat-form-field>
<input matInput placeholder="Name" #NameInput>
</mat-form-field>
<mat-select placeholder="How Many?">
<mat-option>One</mat-option>
<mat-option>Two</mat-option>
<mat-option>Three</mat-option>
<mat-option>Four</mat-option>
<mat-option>Five</mat-option>
</mat-select>
Run Code Online (Sandbox Code Playgroud)
结果
包装mat-select中的a mat-form-field给出了以下错误:
mat-form-field必须包含MatFormFieldControl.您是否忘记将matInput添加到本机输入或textarea元素?
然而,包括input与matInput内容显示了input和mat-select在一起,使它看起来怪异.有什么方法吗?