2sxc v17.x调用$2sxc.cms.run新建实体后如何获取EntityId?
2sxc v17.x 获取新建实体的EntityId方法
在2sxc v17版本中,$2sxc.cms.run('new', ...)的Promise返回结构做了调整,不能直接从回调参数中获取EntityId,需要从返回结果的嵌套结构中提取:
正确代码示例
// 可直接使用全局$2sxc,或指定模块上下文避免歧义 $2sxc.cms.run('new', { contentType: '你的内容类型名称', // 需与后台定义的名称完全匹配(区分大小写) moduleId: 123 // 可选:填当前模块ID,防止上下文混乱 }) .then(result => { // 先判断操作是否成功 if (result.success) { const newEntityId = result.data.entity.EntityId; // 这里可使用EntityId执行后续操作,比如刷新列表、关联数据等 console.log('新建实体ID:', newEntityId); } else { console.error('创建实体失败:', result.error); } }) .catch(err => console.error('请求异常:', err));
关键说明
- v17统一了CMS API的返回格式,所有操作结果都包含
success(布尔值)、data(成功时的结果数据)、error(失败时的错误信息)字段 - 新建实体的完整数据存放在
result.data.entity中,除了EntityId,还可获取Title等其他实体属性 - 若未指定
moduleId,需确保当前页面的模块上下文正确,否则可能出现创建失败或实体归属错误的情况
内容的提问来源于stack exchange,提问作者Thiện Võ
相关产品推荐
相关产品推荐

