工具函数 — typedComponent / convertToField 等
本文介绍 @piying/view-angular 提供的工具函数与类:typedComponent / nfcComponent、convertToField、NgSchemaHandle / AngularFormBuilder,以及 actions.directives。
typedComponent — 强类型 setComponent
Section titled “typedComponent — 强类型 setComponent”基于组件 @Input() / @Output() 推导 inputs / outputs 类型。返回 { define, setComponent, nfcComponent }:
- 返回的
setComponent(key, fn)会包装setComponent+ 由fn(actions)返回的 Actions 列表,生成metadataList。 - 返回的
nfcComponent(key, fn)基于NFCSchema(非表单控件)生成v.pipeSchema。 - 推导规则:从组件实例的
InputSignal/InputSignalWithTransform推导 inputs 类型,从OutputEmitterRef推导 outputs 类型。
想把 Action 集中到 schema 之外一处写完,并让回调里的
field也拿到精确类型,见 typedFieldComponentPipe。
convertToField — 转换 Schema
Section titled “convertToField — 转换 Schema”将 Valibot Schema 转换为已解析的字段配置:
它是 createConvertToField({ builder: AngularFormBuilder, handle: NgSchemaHandle }) 的实例。
NgSchemaHandle / AngularFormBuilder
Section titled “NgSchemaHandle / AngularFormBuilder”AngularFormBuilder.afterResolveConfig 会把 config.directives = field.directives 赋给解析后的字段配置。
actions.directives — 指令 Actions
Section titled “actions.directives — 指令 Actions”actions.directives 为字段附加自定义指令(指令配置):
actions = { ...coreActions, directives },其中 directives 提供 set / patch / patchAsync / remove。
详细使用见 字段指令配置。
- Angular API 参考 — 全部公开 API 索引
- 字段指令配置 — 指令配置详细行为