Collapse折叠面板

    • 对复杂区域进行分组和隐藏,保持页面的整洁。
    • 是一种特殊的折叠面板,只允许单个内容区域展开。

    折叠面板

    可以同时展开多个面板,这个例子默认展开了第一个。

    1. import { Component } from '@angular/core';
    2. @Component({
    3. selector: 'nz-demo-collapse-basic',
    4. template: `
    5. <nz-collapse>
    6. <nz-collapse-panel *ngFor="let panel of panels" [nzHeader]="panel.name" [nzActive]="panel.active" [nzDisabled]="panel.disabled">
    7. <p style="margin:0;">
    8. A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many
    9. households across the world.
    10. </p>
    11. </nz-collapse-panel>
    12. </nz-collapse>
    13. `
    14. })
    15. export class NzDemoCollapseBasicComponent {
    16. panels = [
    17. {
    18. active: true,
    19. name: 'This is panel header 1',
    20. disabled: false
    21. },
    22. {
    23. active: false,
    24. disabled: false,
    25. name: 'This is panel header 2'
    26. },
    27. {
    28. active: false,
    29. disabled: true,
    30. name: 'This is panel header 3'
    31. }
    32. ];
    33. }

    Collapse折叠面板 - 图4

    手风琴

    手风琴,每次只打开一个tab。默认打开第一个。

    1. import { Component } from '@angular/core';
    2. @Component({
    3. selector: 'nz-demo-collapse-accordion',
    4. template: `
    5. <nz-collapse nzAccordion>
    6. <nz-collapse-panel *ngFor="let panel of panels" [nzHeader]="panel.name" [nzActive]="panel.active">
    7. <p>{{ panel.name }} content</p>
    8. </nz-collapse-panel>
    9. </nz-collapse>
    10. `
    11. })
    12. export class NzDemoCollapseAccordionComponent {
    13. panels = [
    14. {
    15. active: true,
    16. name: 'This is panel header 1',
    17. childPanel: [
    18. {
    19. active: false,
    20. name: 'This is panel header 1-1'
    21. }
    22. ]
    23. },
    24. {
    25. active: false,
    26. name: 'This is panel header 2'
    27. },
    28. {
    29. active: false,
    30. name: 'This is panel header 3'
    31. }
    32. ];
    33. }

    嵌套折叠面板。

    Collapse折叠面板 - 图6

    简洁风格

    一套没有边框的简洁样式。

    1. import { Component } from '@angular/core';
    2. @Component({
    3. selector: 'nz-demo-collapse-borderless',
    4. template: `
    5. <nz-collapse [nzBordered]="false">
    6. <nz-collapse-panel *ngFor="let panel of panels" [nzHeader]="panel.name" [nzActive]="panel.active">
    7. <p>{{ panel.name }} content</p>
    8. </nz-collapse>
    9. `
    10. })
    11. export class NzDemoCollapseBorderlessComponent {
    12. panels = [
    13. {
    14. active: true,
    15. disabled: false,
    16. name: 'This is panel header 1',
    17. childPannel: [
    18. {
    19. active: false,
    20. disabled: true,
    21. name: 'This is panel header 1-1'
    22. ]
    23. },
    24. {
    25. active: false,
    26. disabled: true,
    27. name: 'This is panel header 2'
    28. },
    29. {
    30. active: false,
    31. disabled: false,
    32. name: 'This is panel header 3'
    33. }
    34. ];
    35. }

    自定义面板

    自定义各个面板的背景色、圆角、边距和图标。

    1. import { Component } from '@angular/core';
    2. @Component({
    3. selector: 'nz-demo-collapse-custom',
    4. template: `
    5. <nz-collapse [nzBordered]="false">
    6. <nz-collapse-panel
    7. #p
    8. *ngFor="let panel of panels; let isFirst = first"
    9. [nzHeader]="panel.name"
    10. [nzActive]="panel.active"
    11. [ngStyle]="panel.customStyle"
    12. [nzExpandedIcon]="!isFirst ? panel.icon || expandedIcon : undefined"
    13. >
    14. <p>{{ panel.name }} content</p>
    15. <ng-template #expandedIcon let-active>
    16. {{ active }}
    17. <i nz-icon nzType="caret-right" class="ant-collapse-arrow" [nzRotate]="p.nzActive ? 90 : -90"></i>
    18. </ng-template>
    19. </nz-collapse-panel>
    20. </nz-collapse>
    21. `
    22. })
    23. export class NzDemoCollapseCustomComponent {
    24. panels = [
    25. {
    26. active: true,
    27. disabled: false,
    28. name: 'This is panel header 1',
    29. customStyle: {
    30. background: '#f7f7f7',
    31. 'border-radius': '4px',
    32. 'margin-bottom': '24px',
    33. border: '0px'
    34. }
    35. },
    36. {
    37. active: false,
    38. disabled: true,
    39. name: 'This is panel header 2',
    40. icon: 'double-right',
    41. customStyle: {
    42. background: '#f7f7f7',
    43. 'border-radius': '4px',
    44. 'margin-bottom': '24px',
    45. border: '0px'
    46. }
    47. },
    48. {
    49. active: false,
    50. disabled: false,
    51. name: 'This is panel header 3',
    52. customStyle: {
    53. background: '#f7f7f7',
    54. 'margin-bottom': '24px',
    55. border: '0px'
    56. }
    57. }
    58. ];
    59. }

    隐藏箭头

    你可以通过 [nzShowArrow]="false" 隐藏 nz-collapse-panel 组件的箭头图标。

    Collapse折叠面板 - 图9

    额外节点

    你可以通过 nzExtra 来指定面板右上角的额外内容。

    1. import { Component } from '@angular/core';
    2. @Component({
    3. selector: 'nz-demo-collapse-extra',
    4. template: `
    5. <nz-collapse>
    6. <nz-collapse-panel
    7. *ngFor="let panel of panels"
    8. [nzHeader]="panel.name"
    9. [nzActive]="panel.active"
    10. [nzExtra]="extraTpl"
    11. [nzDisabled]="panel.disabled"
    12. >
    13. A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many
    14. households across the world.
    15. </p>
    16. </nz-collapse-panel>
    17. </nz-collapse>
    18. <ng-template #extraTpl>
    19. <!-- You can use stopPropagation if you don't want the panel to toggle -->
    20. <i nz-icon nzType="setting" (click)="$event.stopPropagation()"></i>
    21. </ng-template>
    22. `
    23. })
    24. export class NzDemoCollapseExtraComponent {
    25. panels = [
    26. {
    27. active: true,
    28. name: 'This is panel header 1',
    29. disabled: false
    30. },
    31. {
    32. active: false,
    33. disabled: false,
    34. name: 'This is panel header 2'
    35. },
    36. {
    37. active: false,
    38. disabled: true,
    39. name: 'This is panel header 3'
    40. }
    41. ];
    42. }

    幽灵折叠面板

    1. import { Component } from '@angular/core';
    2. @Component({
    3. selector: 'nz-demo-collapse-ghost',
    4. template: `
    5. <nz-collapse nzGhost>
    6. <nz-collapse-panel *ngFor="let panel of panels" [nzHeader]="panel.name" [nzActive]="panel.active" [nzDisabled]="panel.disabled">
    7. <p style="margin:0;">
    8. A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many
    9. households across the world.
    10. </p>
    11. </nz-collapse-panel>
    12. </nz-collapse>
    13. `
    14. })
    15. export class NzDemoCollapseGhostComponent {
    16. panels = [
    17. {
    18. active: true,
    19. name: 'This is panel header 1',
    20. disabled: false
    21. },
    22. {
    23. active: false,
    24. disabled: false,
    25. name: 'This is panel header 2'
    26. },
    27. {
    28. active: false,
    29. disabled: true,
    30. name: 'This is panel header 3'
    31. }
    32. ];

    nz-collapse-panelcomponent

    参数说明类型默认值
    [nzDisabled]禁用后的面板展开与否将无法通过用户交互改变booleanfalse
    [nzHeader]面板头内容string | TemplateRef<void>-
    [nzExpandedIcon]自定义切换图标string | TemplateRef<void>-
    [nzExtra]自定义渲染每个面板右上角的内容string | TemplateRef<void>-
    [nzShowArrow]是否展示箭头booleantrue
    [nzActive]面板是否展开,可双向绑定boolean-
    (nzActiveChange)面板展开回调-