Angular Directives 是一份关于在 Angular v20+ 中创建自定义指令、以复用 DOM 操作与行为扩展的文档型技能资料,内容以 TypeScript 代码示例为主。
用途:帮助开发者在 Angular v20+ 项目中编写自定义指令,用于修改元素外观或行为、处理事件、操作 DOM 结构等场景。
主要能力:
- 属性指令:通过 input 与 effect 修改元素样式(如高亮指令),并使用 host 属性声明宿主绑定,示例中说明优先使用 host 而非 @HostBinding/@HostListener。
- 类与样式操作:在 host 中按条件绑定 class 与属性(如按钮变体、尺寸、禁用状态)。
- 事件处理:示例包括点击外部触发(document:click)与键盘快捷键(document:keydown,支持 Ctrl、Shift、Alt 修饰键组合)。
- 结构指令:用于 Portal 跨 DOM 位置渲染、按条件一次性懒渲染、带上下文的自定义模板出口。文档建议条件与循环优先使用原生 @if、@for、@switch。
- 宿主指令:通过 hostDirectives 在组件或其他指令上组合可复用行为(聚焦、禁用、悬停),并可暴露输入与输出。
- 指令组合 API:将多个基础指令组合为一个组件(如 Ripple、Elevation、Disableable 组合成按钮)。
使用方式:文档以代码片段给出各指令的完整定义与调用示例,例如属性指令、工具提示指令、Portal 指令、懒渲染指令、模板出口指令、宿主指令与组合组件;同时提及进阶模式可参考 references/directive-patterns.md。文档未提供安装命令或独立运行步骤。
适用场景:适用于需要在 Angular v20+ 中封装可复用交互行为(提示、快捷键、点击外部关闭)、自定义渲染位置(Portal、覆盖层)、延迟渲染重组件,以及通过宿主指令与组合 API 构建组件行为体系的开发工作。
限制:文档中的内容针对 Angular v20+;示例中工具提示的定位逻辑仅以注释占位,未给出具体实现;未提供完整项目配置、依赖安装、测试或发布说明。