angular - 如何隐藏按钮?
问题描述
我有 bool isEditable
我的按钮:
<button mat-button color="primary" class="btn-block" type="button" (click)="enableEdit()">Edit</button>
<button mat-button color="primary" class="btn-block" type="submit" [disabled]="!registerForm.valid">Register</button>
如果 isEditable = true 我想编辑按钮隐藏。如果 isEditable = false 我想注册按钮隐藏。
我如何用 ngif 来做呢?
解决方案
有多种方法可以做到这一点。
选项1:*ngIf
当条件不满足时,插入条件 using*ngIf
不会在 DOM 中生成元素。
<button
mat-button
color="primary"
class="btn-block"
*ngIf="isEditable; else edit"
type="submit"
[disabled]="!registerForm.valid"
>
Register
</button>
<ng-template #edit>
<button
mat-button
color="primary"
class="btn-block"
type="button"
(click)="enableEdit()"
>
Edit
</button>
</ng-template>
选项 2:CSSvisibility
在和visibility
之间切换 CSS 属性会显示或隐藏元素,但它仍会出现在 DOM 中并占据布局中的空间。visible
hidden
<button
mat-button
color="primary"
class="btn-block"
[style.visiblity]="isEditable ? 'hidden' : 'visible'"
type="button"
(click)="enableEdit()"
>
Edit
</button>
<button
mat-button
color="primary"
class="btn-block"
[style.visiblity]="isEditable ? 'visible' : 'hidden'"
type="submit"
[disabled]="!registerForm.valid"
>
Register
</button>
选项 3:CSSdisplay
切换 CSSdisplay
属性状态也会显示或隐藏元素,并且它会出现在 DOM 中。但它不会占用布局中的任何空间。
<button
mat-button
color="primary"
class="btn-block"
[style.display]="isEditable ? 'none' : 'block'"
type="button"
(click)="enableEdit()"
>
Edit
</button>
<button
mat-button
color="primary"
class="btn-block"
[style.display]="isEditable ? 'block' : 'none'"
type="submit"
[disabled]="!registerForm.valid"
>
Register
</button>
推荐阅读
- python - 字典中的最大值但不等于 1
- node.js - PayloadTooLargeError:上传图片时请求实体太大
- c# - 如何从 System.Windows.SystemColors.WindowTextBrushKey 更改为字符串颜色名称?
- r - 在 R 中聚合具有字符串值的行
- azure - 在 Azure VM 上安装 Minikube - NV6(促销)
- vim - 基于单个字符缩进一段代码
- pyspark - Pyspark isin with column in argument 不排除行
- elasticsearch - 查询以匹配弹性搜索中的子字符串
- r - 在 R ggplot2 中用线和置信区间绘制主轴和次轴
- tensorflow - Pycharm虚拟环境中的Tensorflow问题:TypeError: 'Model' object is not iterable