如何从嵌入画布应用调用模型驱动表单中的JavaScript函数?
模型驱动嵌入画布应用调用宿主表单JS函数问题
问题
在模型驱动应用中,我需要实现多个保存按钮,每个按钮对应不同的验证逻辑。因为按钮数量取决于其他变量,用命令栏无法控制,所以打算在嵌入的画布应用里实现这些保存按钮。根据官方文档,SaveForm()是少数能对宿主表单执行的操作之一,但文档未说明是否存在未公开的方法,可从画布应用调用实体表单中的JavaScript函数?
可行方案
目前官方公开的嵌入画布应用与宿主模型驱动表单的交互能力非常有限,仅支持SaveForm()、RefreshForm()、SubmitForm()这些明确文档化的操作,没有官方支持的方式调用宿主表单中的自定义JavaScript函数,也不存在公开认可的未公开方法。
如果需要实现不同验证逻辑的保存操作,推荐以下思路:
- 把不同的验证逻辑封装成模型驱动应用的自定义API或插件,在画布应用中调用这些API完成验证,验证通过后再调用
SaveForm()保存表单。 - 在模型驱动表单的
OnSave事件中添加分支逻辑,通过画布应用传递的标记(比如用自定义字段存储操作类型)判断执行哪一套验证逻辑,画布应用只需设置标记后调用SaveForm()即可。 - 若需在画布应用内处理部分验证,可先在画布应用中完成前端校验,通过后再触发宿主表单的保存,同时宿主表单的JS可补充额外验证环节。
内容的提问来源于stack exchange,提问作者Haoest
相关产品推荐
相关产品推荐

