当前 RunJS 执行上下文所在的 FlowModel 实例,是 JSBlock、JSField、JSAction 等场景的默认入口。具体类型随上下文变化:可能是 BlockModel、ActionModel、JSEditableFieldModel 等子类。
| 场景 | 说明 |
|---|---|
| JSBlock | ctx.model 即为当前区块模型,可访问 resource、collection、setProps 等 |
| JSField / JSItem / JSColumn | ctx.model 为字段模型,可访问 setProps、dispatchEvent 等 |
| 操作事件 / ActionModel | ctx.model 为操作模型,可读写步骤参数、派发事件等 |
提示:若需访问承载当前 JS 的父区块(如表单/表格区块),使用
ctx.blockModel;若需访问其他模型,使用ctx.getModel(uid)。
FlowModel 为基类,实际运行时为各种子类(如 BlockModel、FormBlockModel、TableBlockModel、JSEditableFieldModel、ActionModel 等),可用属性和方法因类型而异。
| 属性 | 类型 | 说明 |
|---|---|---|
uid | string | 模型唯一标识,可用于 ctx.getModel(uid) 或弹窗 UID 绑定 |
collection | Collection | 当前模型绑定的数据表(区块/字段绑定数据时存在) |
resource | Resource | 关联的资源实例,用于刷新、获取选中行等 |
props | object | 模型 UI/行为配置,可用 setProps 更新 |
subModels | Record<string, FlowModel> | 子模型集合(如表单内字段、表格内列) |
parent | FlowModel | 父模型(若有) |
| 方法 | 说明 |
|---|---|
setProps(partialProps: any): void | 更新模型配置,触发重新渲染(如 ctx.model.setProps({ loading: true })) |
dispatchEvent(eventName: string, payload?: any, options?: any): Promise<any[]> | 向模型派发事件,触发该模型上配置的、监听该事件名的流程。可选 payload 传给流程 handler;options.debounce 可开启防抖 |
getStepParams?.(flowKey, stepKey) | 读取配置流步骤参数(设置面板、自定义操作等场景) |
setStepParams?.(flowKey, stepKey, params) | 写入配置流步骤参数 |
| 需求 | 推荐用法 |
|---|---|
| 当前执行上下文所在模型 | ctx.model |
| 当前 JS 所在的父区块 | ctx.blockModel,常用于访问 resource、form、collection |
| 按 uid 获取任意模型 | ctx.getModel(uid) 或 ctx.getModel(uid, true)(跨视图栈查找) |
在 JSField 中,ctx.model 为字段模型,ctx.blockModel 为承载该字段的表单/表格区块。