angular-material 相关问题

Angular Material项目是Angular中Material Design的实现。该项目基于Material Design系统提供了一组可重用,经过良好测试和可访问的UI组件。不要将此标记用于AngularJS Material,即旧版AngularJS框架的Material Design实现。

如何避免 Angular 材质中出现额外的 mat-form-field-underline

我遇到一个问题,为什么在使用组件时会出现额外的 mat-form-field-underline 。 我的页面使用此标记: 我遇到一个问题,为什么在使用组件时会出现额外的 mat-form-field-underline。 我的页面使用此标记: <mat-form-field class="col-md-6"> <app-mat-select-all [data]="tractList$" formControlName="tractList" fieldName="name" [multiselect]=true labelText="Tract List" idField="guid" > </app-mat-select-all> </mat-form-field> 我的自定义组件具有以下模板代码 <form novalidate [formGroup]="form"> <mat-form-field> <mat-label>{{labelText}}</mat-label> <mat-select #select [multiple]="multiselect" [formControl]="selectField" > <div class="select-all"> <mat-checkbox *ngIf="multiselect" [(ngModel)]="allSelected" [ngModelOptions]="{standalone: true}" [indeterminate]="isIndeterminate()" [checked]="isChecked()" (click)="$event.stopPropagation()" (change)="toggleAllSelection($event)">{{text}}</mat-checkbox> </div> <mat-option *ngFor="let item of data" [value]="item[idField]"> {{item[fieldName]}} </mat-option> </mat-select> </mat-form-field> </form> 在渲染的页面上看起来像这样 当我将以下行添加到我的父样式表中时,所有 mat-form-field-underlines 都消失了,这不是我想要的。如果我删除自定义组件中的 mat-form-field,我只会得到一行,但 mat-form-field-underline 的对齐方式与页面上的其他组件不对齐。所以我需要找到一种方法,只针对第二个下划线才能删除。 ::ng-deep .mat-form-field-underline { display: none; } 这是一个 stackblitz 示例,演示了第二下划线的问题 StackBlitz 示例 这是我检查时的代码,似乎由于某种原因在 mat-form-field 内有一个 mat-form-field。不知道为什么? <mat-form-field _ngcontent-jtb-c709="" class="mat-form-field col-md-6 ng-tns-c393-17 mat-primary mat-form-field-appearance-legacy mat-form-field-can-float mat-form-field-hide-placeholder"><div class="mat-form-field-wrapper ng-tns-c393-17"><div class="mat-form-field-flex ng-tns-c393-17"><!--bindings={ "ng-reflect-ng-if": "false" }--><!--bindings={ "ng-reflect-ng-if": "0" }--><div class="mat-form-field-infix ng-tns-c393-17"><app-mat-select-all _ngcontent-jtb-c709="" formcontrolname="tractList" fieldname="name" labeltext="Tract List" idfield="guid" _nghost-jtb-c804="" ng-reflect-field-name="name" ng-reflect-label-text="Tract List" ng-reflect-id-field="guid" ng-reflect-name="tractList" ng-reflect-form-control-name="tractList" class="ng-tns-c393-17 ng-untouched ng-pristine ng-valid" ng-reflect-multiselect="true" ng-reflect-data="[object Object],[object Object"><form _ngcontent-jtb-c804="" novalidate="" ng-reflect-form="[object Object]" class="ng-untouched ng-pristine ng-valid"><mat-form-field _ngcontent-jtb-c804="" class="mat-form-field ng-tns-c393-18 mat-primary mat-form-field-type-mat-select mat-form-field-appearance-legacy mat-form-field-can-float mat-form-field-has-label mat-form-field-hide-placeholder ng-untouched ng-pristine ng-valid"><div class="mat-form-field-wrapper ng-tns-c393-18"><div class="mat-form-field-flex ng-tns-c393-18"><!--bindings={ "ng-reflect-ng-if": "false" }--><!--bindings={ "ng-reflect-ng-if": "0" }--><div class="mat-form-field-infix ng-tns-c393-18"><mat-select _ngcontent-jtb-c804="" role="combobox" aria-autocomplete="none" aria-haspopup="true" class="mat-select ng-tns-c500-19 ng-tns-c393-18 ng-star-inserted mat-select-empty mat-select-multiple ng-untouched ng-pristine ng-valid" ng-reflect-multiple="true" ng-reflect-form="[object Object]" aria-labelledby="mat-form-field-label-19 mat-select-value-15" id="mat-select-14" tabindex="0" aria-expanded="false" aria-required="false" aria-disabled="false" aria-invalid="false"><div cdk-overlay-origin="" class="mat-select-trigger ng-tns-c500-19"><div class="mat-select-value ng-tns-c500-19" ng-reflect-ng-switch="true" id="mat-select-value-15"><span class="mat-select-placeholder mat-select-min-line ng-tns-c500-19 ng-star-inserted"></span><!--bindings={ "ng-reflect-ng-switch-case": "true" }--><!--bindings={ "ng-reflect-ng-switch-case": "false" }--></div><div class="mat-select-arrow-wrapper ng-tns-c500-19"><div class="mat-select-arrow ng-tns-c500-19"></div></div></div><!--bindings={ "ng-reflect-offset-y": "0" }--></mat-select><span class="mat-form-field-label-wrapper ng-tns-c393-18"><label class="mat-form-field-label ng-tns-c393-18 mat-empty mat-form-field-empty ng-star-inserted" ng-reflect-disabled="true" id="mat-form-field-label-19" ng-reflect-ng-switch="true" for="mat-select-14" aria-owns="mat-select-14"><!--bindings={ "ng-reflect-ng-switch-case": "false" }--><mat-label _ngcontent-jtb-c804="" class="ng-tns-c393-18 ng-star-inserted">Tract List</mat-label><!--bindings={ "ng-reflect-ng-switch-case": "true" }--><!--bindings={ "ng-reflect-ng-if": "false" }--></label><!--bindings={ "ng-reflect-ng-if": "true" }--></span></div><!--bindings={ "ng-reflect-ng-if": "0" }--></div><div class="mat-form-field-underline ng-tns-c393-18 ng-star-inserted"><span class="mat-form-field-ripple ng-tns-c393-18"></span></div><!--bindings={ "ng-reflect-ng-if": "true" }--><div class="mat-form-field-subscript-wrapper ng-tns-c393-18" ng-reflect-ng-switch="hint"><!--bindings={ "ng-reflect-ng-switch-case": "error" }--><div class="mat-form-field-hint-wrapper ng-tns-c393-18 ng-trigger ng-trigger-transitionMessages ng-star-inserted" style="opacity: 1; transform: translateY(0%);"><!--bindings={ "ng-reflect-ng-if": "" }--><div class="mat-form-field-hint-spacer ng-tns-c393-18"></div></div><!--bindings={ "ng-reflect-ng-switch-case": "hint" }--></div></div></mat-form-field></form></app-mat-select-all><span class="mat-form-field-label-wrapper ng-tns-c393-17"><!--bindings={ "ng-reflect-ng-if": "false" }--></span></div><!--bindings={ "ng-reflect-ng-if": "0" }--></div><div class="mat-form-field-underline ng-tns-c393-17 ng-star-inserted"><span class="mat-form-field-ripple ng-tns-c393-17"></span></div><!--bindings={ "ng-reflect-ng-if": "true" }--><div class="mat-form-field-subscript-wrapper ng-tns-c393-17" ng-reflect-ng-switch="hint"><!--bindings={ "ng-reflect-ng-switch-case": "error" }--><div class="mat-form-field-hint-wrapper ng-tns-c393-17 ng-trigger ng-trigger-transitionMessages ng-star-inserted" style="opacity: 1; transform: translateY(0%);"><!--bindings={ "ng-reflect-ng-if": "" }--><div class="mat-form-field-hint-spacer ng-tns-c393-17"></div></div><!--bindings={ "ng-reflect-ng-switch-case": "hint" }--></div></div></mat-form-field> 当你这样做时: ::ng-deep .mat-form-field-underline { display: none; } 这适用于具有此类的所有材质组件。您应该做的是将自定义类添加到 HTML 内的组件,然后在 SCSS 文件中像这样引用它: <mat-form-field class="custom-class"> ... </mat-form-field> ::ng-deep .custom-class .mat-form-field-underline { display: none; } 现在,只有该组件会受到 ::ng-deep 覆盖的影响。 工作示例 在带有基于 MDC 的组件的 Angular-Material 15 及更高版本中,以下代码隐藏了 mat-select 的额外下划线,而不影响其他表单字段组件: mat-form-field:has(mat-select) div[matformfieldlineripple] { display: none; } 在这里,您将波纹 div 隐藏在 mat-form-fields 中,其中有 mat-select 。

回答 2 投票 0

放置在列表中时,材质凸起按钮会被剪切

放置在列表中时,材料凸起按钮会被剪切。如何解决这个问题? 当我在浏览器中重写 mdc-list-item__content 类时,我能够使其看起来正确。 但我不是

回答 1 投票 0

删除后无法取消选择所有复选框

我有 3 个复选框和一个主复选框来选择或取消选择它们。 主复选框工作正常,直到我从表中删除一些行。当一些数据被删除后,我可以检查主要...

回答 3 投票 0

Angular 材质:如何在隐藏 mat-tab 时隐藏 mat-tab-header?

我有一个基本的 mat-tab-group,其中嵌套了 2 个 mat-tab。两个 mat-tab 都有一个 [hidden] 输入属性,由我的代码中更改的布尔值确定。它就像一种魅力......

回答 1 投票 0

将 Angular 材质对话框迁移到 17 并弃用 Angular 中的组件工厂

在 Angular 13 中,我使用 _injectDialogHost() 方法创建一个 _bodyComponent,如下所示: 私人_injectDialogHost():无效{ const componentFactory = this._componentFactoryResol...

回答 1 投票 0

Angular Material V16 的奇怪行为

很奇怪地遇到了这个错误。 当我的页面大小通过 mat-form-fields 扩展页面高度时,我遇到了一些问题,即某些部分未加载,主要是有角度的材料部分。这是一个 GIF。 错误的 GIF ...

回答 1 投票 0

从 Angular 16.2.14 更新到 Angular 17.3.1 后出现编译错误

今天我已将我的项目从 Angular 16.2.14 更新到 17.3.1,但是当我尝试编译时出现以下错误,我该怎么解决这个问题? ./src/assets/styles/customMaterialTheme.scss - 错误...

回答 1 投票 0

Angular Ui Material Table 具有粘性页眉和页脚,并且还想要一个通用的页眉粘性。如何解决这个问题

我希望我的桌子会像我在材料表文档中给出的那样具有粘性,但当我尝试为 .example-container 提供 100% 高度时,它不会粘住表头 表。

回答 1 投票 0

角度材质对话框速度缓慢,且呈现和绑定损坏

我有一个使用 Angular Material 和 Angular Monaco 编辑器 v2 的 Angular 17 应用程序。请在 Stackblitz 上找到完整的重现。 repro 应用程序有一个绑定到 CTRL+P 的 Monaco 编辑器。当您按下此热键时...

回答 1 投票 0

角度 10 <input type=number> 千位分隔符

在我的 Angular 10 项目中,我有一些带有 的 mat-form-fields,我想向其中添加千位分隔符。 意思是,当用户输入数字时,程序应该插入

回答 3 投票 0

如何在 Angular 中选择性地添加材料自动完成功能

我希望能够有选择地向输入添加自动完成功能。 目前,我尝试将 *ngIf 添加到 mat 自动完成标记,但它会引发错误,因为输入具有 matAutocomplete 属性...

回答 2 投票 0

尝试获取 viewValue(文本)而不是 Angular 中的多重选择中的值

我可以获得与多重选择相关的值,但希望文本显示所选的程序。角度 14.2 打字稿类 导出类 AffinityProgramsComponent { 标题='

回答 1 投票 0

Angular - 在 MatDialog 中输入时发送表单

我的目标是如果按 Enter 键则执行 MatDialog 中的表单。关注哪个元素并不重要。我进行了很多搜索并尝试了很多方法,但每次都不起作用。 我已经尝试过...

回答 1 投票 0

如何在 Angular v17 中响应式工作角度材质表

所以我一直在遵循这些过程来帮助如何设置角度材料表响应:材料表。我正在尝试在本地使用这个:stackblizAngular12+。 我多次修改了at-

回答 1 投票 0

带有 css 变量的 Angular 材质主题

我的项目中有如下CSS变量: :根 { --颜色主色:#65A518; --颜色主色悬停:#558817; --颜色-原色-深色:#006729; --颜色-白色:#FFFFFF; } 但现在我必须...

回答 1 投票 0

Angular 17 上材质工具提示的自定义样式

我有一个带有最新 Material 组件的 Angular 17 应用程序。 我广泛使用工具提示组件,但在寻找如何自定义它时遇到问题。 我确实设法使用

回答 1 投票 0

如何以编程方式更改材料日历中的月份<mat-calendar>

我正在使用 Material Calendar 组件和我构建的自定义导航,该组件显示您在日历中选择日期后的接下来 5 天。 当您在自定义元素中选择日期时

回答 5 投票 0

如何测试 matTooltip 是否在 Angular Material 中正确禁用?

我有一个循环创建多个 matCard 元素。这些代表事件。其中一些已经成为过去。我给它们一个类来将它们变灰,并添加一个 matTooltip 来解释这意味着什么。 <...

回答 2 投票 0

如果我在 mat-dialog 中单击取消提交按钮,如何取消选中 mat-checkbox

我编写了一个对话框,其中包含要从表中删除的所有选定行。现在,当我提交对话框时,我希望也取消选中激活的复选框。 最好的方法是什么...

回答 2 投票 0

Angular:基于多个条件的多个 matToolTips

我有多个条件和工具提示文本值,我想将它们应用于单个表值。根据条件,我们会说 A、B 和 C,我们会显示特定的工具提示文本。如果穆...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.