用途
Syncfusion Angular Accordion 组件用于在 Angular 应用中创建垂直可折叠的内容面板,让用户按需展开或收起各个分区,从而在有限空间内组织大量相关内容。它适合把相关信息分组为可展开的区块,也适合构建需要逐步推进的交互流程。
主要能力
- 展开模式:支持 Single(一次只展开一项)与 Multiple(可同时展开多项)两种模式,可通过 expandMode 配置,并用 expandedIndices 指定初始展开项。
- 数据绑定:可通过 items 数组直接提供项目,也可通过 dataSource 绑定 DataManager 或对象数组,支持从 OData 服务获取数据,并可将数据属性映射到标题与内容。
- 动态项目管理:提供 addItem()、removeItem()、expandItem()、enableItem()、hideItem()、select()、destroy() 等方法,可在运行时添加、删除、展开、启用、隐藏项目或清理组件资源。
- 事件处理:提供 created、expanding、expanded、clicked、destroyed 事件;其中 expanding 可取消,用于阻止展开或收起。
- 动画:支持 SlideDown、SlideUp、FadeDown、FadeUp、Zoom、None 六种效果,并可配置 duration 与 easing(linear、ease、ease-in、ease-out、ease-in-out)。
- 高级特性:支持嵌套手风琴、在项目内集成 TreeView、自定义 CSS 样式与主题、RTL 从右到左布局、headerTemplate 与 itemTemplate 模板、enablePersistence 保存展开状态、enableHtmlSanitizer 内容净化、locale 本地化。
- 内容投影:可使用 Angular 的 ng-content 构建可复用的内容组件。
使用方式
安装并导入 AccordionModule(来自 @syncfusion/ej2-angular-navigations),然后通过模板方式或 items 数组方式初始化。模板方式使用 <ejs-accordion> 与 <e-accordionitems>/<e-accordionitem>,配合 #header 与 #content 的 ng-template;数组方式则通过 [items] 绑定包含 header、content、expanded 等字段的对象数组。常用模式包括:单展开模式(expandMode="Single")、动态添加项目(调用 addItem)、事件驱动工作流(绑定 expanding/expanded)、动画配置(绑定 animation 对象)。
适用场景
- FAQ 问答:可展开的问题与答案对,通常配合单展开模式。
- 多步骤向导:按顺序推进的项目,可结合校验与条件启用。
- 分步表单:将表单拆分为多个可展开步骤。
- 设置面板:将分组设置组织在可展开分区中。
- 导航菜单:使用嵌套手风琴构建层级导航。
- 数据浏览器:可展开的数据分类,支持动态加载。
- 帮助文档:按主题组织的可折叠帮助内容。
限制与注意事项
资料未提供该组件的收费、价格、平台兼容版本或性能基准等信息。使用中若遇到项目无法展开,可检查是否被禁用或 expandMode 设置;内容未加载时检查 header/content 属性与 CSS 导入;动画不流畅时确认 CSS 导入并考虑缩短动画时长;多项意外关闭时确认 expandMode 为 Multiple 且事件处理未设置 cancel。