Ham*_*mdi 8 angular-material angular angular15
Angular 15 中的属性appearance="standard"不再起作用。除了 之外,所有外观均运行良好standard。
为什么这不再起作用了?
结果:
需要:
<mat-form-field class="form-field" Appearance="Standard">
<input matInput formControlName="email" matInput placeholder="email" name="email" type="text" required>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
D M*_*D M 15
您正在使用的属性的 API已从 v14 更改为 v15。具体来说,删除了legacy和外观。standard
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
导入路径 变更摘要 ... ... @angular/material/form-field样式更改、删除了一些外观、API 更改 ... ...
博客中解释了 API 更改的原因:
\n\n\n我们\xe2\x80\x99很高兴地宣布基于Material Design Components for Web (MDC)的Angular材质组件的重构现已完成!这一更改使 Angular 能够更接近 Material Design 规范,重用 Material Design 团队开发的原语代码,并使我们能够在最终确定样式标记后采用 Material 3。
\n
从v14 文档来看,Angular 14 中的有效值是:
\ntype MatFormFieldAppearance = \'legacy\' | \'standard\' | \'fill\' | \'outline\';\nRun Code Online (Sandbox Code Playgroud)\n从v15 文档来看,Angular 15 中的有效值是:
\ntype MatFormFieldAppearance = \'fill\' | \'outline\';\nRun Code Online (Sandbox Code Playgroud)\n如果您想继续使用appearance="standard",可以尝试导入 ,MatLegacyFormFieldModule而不是MatFormFieldModule。该博客提到,只要您不同时导入两者,它们目前是可以互换的。这是为了让您能够按照自己的节奏升级各个模块(您自己的模块和 Angular Material)。
\n\n每个新组件的旧实现现已弃用,但仍可通过 \xe2\x80\x9clegacy\xe2\x80\x9d 导入使用。例如,您可以
\nmat-button通过导入旧按钮模块来导入旧的实现。Run Code Online (Sandbox Code Playgroud)\nimport {MatLegacyButtonModule} from \'@angular/material/legacy-button\';\n请访问迁移指南以获取更多信息。
\n
小智 6
在 Angular 15 中,不鼓励使用样式来定制材质库。但是,对于这么小的要求,您可以使用:
.mat-mdc-form-field-focus-overlay {
background-color: white;
}
.mdc-text-field--filled:not(.mdc-text-field--disabled) {
background-color: white
}
Run Code Online (Sandbox Code Playgroud)