动态检测 nz modal 框的 nzOkDisabled
时间: 2024-10-15 11:11:16 浏览: 18
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
在ng-zorro的nz-modal组件中,`nzOkDisabled`属性用于动态禁用“确定”按钮,通常会根据某些条件(如表单验证、数据状态等)来设置这个属性。如果你想动态地检测这个值,你可以这样做:
首先,你需要在一个表单组件或者其他相关的逻辑处理部分定义一个变量,比如`isOkEnabled`,并初始化为`true`或其他默认值:
```typescript
export class YourComponent {
isOkEnabled: boolean = true; // 初始设置为可用
// ...其他组件逻辑
closeModal() {
// 在这里检查条件,比如form是否有效
if (!this.yourForm.valid) {
this.isOkEnabled = false; // 设置为不可用,如果表单无效
} else {
this.isOkEnabled = true; // 只有在表单有效时才恢复为可用
}
// 然后传递给modal组件
const dialogRef = this.modalService.open(YourModalComponent, {
nzOkDisabled: !this.isOkEnabled,
// ... 其他modal配置
});
}
}
```
然后,在modal组件中接收这个值并在模板里引用:
```html
<ng-template #confirm let-c="close" let-d="dismiss">
<!-- 内容 -->
<div>
<button nz-button type="primary" [disabled]="!isOkEnabled">确定</button>
</div>
</ng-template>
<nz-modal [(nzVisible)]="visible" [nzOkDisabled]="isOkEnabled" nzFooter>
<ng-template nzBody><ng-content></ng-content></ng-template>
<ng-template nzFooter>
<ng-template #confirm let-c="close" let-d="dismiss">
{{c}}
{{d}}
</ng-template>
</ng-template>
</nz-modal>
```
这样,每次`isOkEnabled`变化时,modal的"确定"按钮就会相应地启用或禁用。
阅读全文