DrawerHelper 抽屉辅助类

基于 NzDrawerService 封装,它解决一些已知问题:

  • 更友好的处理回调

  • 响应式处理

create

  1. this.drawerHelper.create('Edit', FormEditComponent, { i }).subscribe(res => this.load());
  2. // 对于组件的成功&关闭的处理说明
  3. // 成功
  4. this.NzDrawerRef.close(data);
  5. this.NzDrawerRef.close(true);
  6. // 关闭
  7. this.NzDrawerRef.close();
  8. this.NzDrawerRef.close(false);

包括 create & static 分别用于打开普通或静态抽屉。

自定义组件HTML模板

  1. 内容
  2. <div class="drawer-footer">
  3. // 底部工具条由 `drawer-footer` 包裹
  4. <button nz-button [nzType]="'default'" (click)="cancel()">
  5. Cancel
  6. </button>
  7. <button nz-button [nzType]="'primary'" (click)="ok()">
  8. OK
  9. </button>
  10. </div>

若无需要底部工具条,需要指定参数 footer: false

代码演示

DrawerHelper 抽屉辅助类 - 图1

基础样例

最简单的用法。

  1. import { Component } from '@angular/core';
  2. import { DrawerHelper } from '@delon/theme';
  3. import { DemoDrawerComponent } from '@shared';
  4. import { NzMessageService } from 'ng-zorro-antd/message';
  5. @Component({
  6. selector: 'theme-drawer-simple',
  7. template: `
  8. <button nz-button (click)="open()">Open</button>
  9. <button nz-button (click)="static()">Static</button>
  10. `,
  11. })
  12. export class ThemeDrawerSimpleComponent {
  13. constructor(private modalHelper: DrawerHelper, private msg: NzMessageService) {}
  14. open(): void {
  15. this.modalHelper.create('View', DemoDrawerComponent, { record: { a: 1, b: '2', c: new Date() } }).subscribe(res => {
  16. this.msg.info(res);
  17. });
  18. }
  19. static(): void {
  20. this.modalHelper.static('View', DemoDrawerComponent, { record: { a: 1, b: '2', c: new Date() } }).subscribe(res => {
  21. this.msg.info(res);
  22. });
  23. }
  24. }

API

名称类型默认值功能
size指定抽屉大小,响应式只支持非数字值,若值为数值类型,则根据 nzPlacement 自动转化为 nzHeightnzWidthsm,md,lg,xl,numbermd
footer是否需要工具条booleantrue
footerHeight工具条高度number55
exact是否精准(默认:true),若返回值非空值(nullundefined)视为成功,否则视为错误booleantrue
drawerOptions抽屉 NzDrawerOptions 参数NzDrawerOptions-