SingleRecordResource
面向单条记录的 Resource:数据为单条对象,支持按主键获取、创建/更新(save)与删除。适用于详情、表单等“单条记录”场景。与 MultiRecordResource 不同,SingleRecordResource 的 getData() 返回单条对象,通过 setFilterByTk(id) 指定主键,save() 会根据 isNewRecord 自动调用 create 或 update。
继承关系:FlowResource → APIResource → BaseRecordResource → SingleRecordResource。
创建方式:ctx.makeResource('SingleRecordResource') 或 ctx.initResource('SingleRecordResource')。使用前需 setResourceName('数据表名');按主键操作时需 setFilterByTk(id);RunJS 中 ctx.api 由运行环境注入。
适用场景
数据格式
getData()返回单条记录对象,即 get 接口的data字段getMeta()返回元信息(如有)
资源名与主键
状态
请求参数(筛选 / 字段)
CRUD
配置与事件
示例
基础获取与更新
新建记录
删除记录
关联展开与字段
关联资源(如 users.profile)
save 不自动刷新
监听 refresh / saved 事件
注意事项
- setResourceName 必填:使用前必须调用
setResourceName('数据表名'),否则无法构建请求 URL。 - filterByTk 与 isNewRecord:未设置
setFilterByTk时isNewRecord为 true,refresh()不会发起请求;save()会走 create。 - 关联资源:资源名为
parent.child时(如users.profile),需先setSourceId(父记录主键)。 - getData 为对象:单条接口返回的
data为记录对象,getData()直接返回该对象;destroy()后为 null。
相关
- ctx.resource - 当前上下文中的 resource 实例
- ctx.initResource() - 初始化并绑定到 ctx.resource
- ctx.makeResource() - 新建 resource 实例,不绑定
- APIResource - 通用 API 资源,按 URL 请求
- MultiRecordResource - 面向数据表/列表,支持 CRUD、分页

