请选择 进入手机版 | 继续访问电脑版
nutstore
金牌服务用户   /  发表于:2022-11-29 11:19  /   查看:2683  /  回复:5
1金币
目前暂时通过一些事件的监听实现了部分的协同编辑功能,想问一下有什么官方的解决方案?

https://gcdn.grapecity.com.cn/fo ... ge%3D376&page=1
看这个帖子里面的 spread.commandManage().addListener('asyncListener') 的这个方法,我在文档里面和ts声明里面都没有看到,是可以使用的方案嘛?以及对一些指令的序列化,最近有没有做出一些功能增强?

最佳答案

查看完整内容

监听是针对UI行为的,比如编辑一个单元格值,需要监听这个行为才知道单元格被修改了,以及监听到这个行为之后要执行什么样的代码逻辑。 但是通过代码去修改,这个修改的行为和修改的值直接在代码中就可以获取到呀,API执行之后做想实现的后续操作就可以了,不需要进行监听。

5 个回复

最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-29 11:20:00
来自 6#
监听是针对UI行为的,比如编辑一个单元格值,需要监听这个行为才知道单元格被修改了,以及监听到这个行为之后要执行什么样的代码逻辑。
但是通过代码去修改,这个修改的行为和修改的值直接在代码中就可以获取到呀,API执行之后做想实现的后续操作就可以了,不需要进行监听。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-29 16:27:14
2#
您好,
addListener 是内部事件,非public API所以未在文档中说明。
协同这块的实现比较复杂,这边也没有明确的解决方案,需要用户基于SpreadJS综合考虑做二次开发。
论坛上有一些协同相关的参考资料,也有客户做的协同公开课分享,可以了解下:
https://gcdn.grapecity.com.cn/fo ... 7&fromuid=59119
https://gcdn.grapecity.com.cn/fo ... 9&fromuid=59119
https://gcdn.grapecity.com.cn/fo ... 2&fromuid=59119
https://gcdn.grapecity.com.cn/fo ... 6&fromuid=59119
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2022-11-30 14:26:05
3#
Lynn.Dou 发表于 2022-11-29 16:27
您好,
addListener 是内部事件,非public API所以未在文档中说明。
协同这块的实现比较复杂,这边也没有 ...

我使用比如 value formula 这些去修改一个cell的值,是不会触发命令**的嘛?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-30 14:46:19
4#
具体是什么操作?如果是用代码去修改的,那是不会触发命令的。
如果是通过编辑等行为修改,那可以通过一些事件(如EditEnded)或者上述链接文章所述的anyscLicenser监听到。您可以看下文章介绍的内容。
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2022-11-30 17:14:18
5#
Lynn.Dou 发表于 2022-11-30 14:46
具体是什么操作?如果是用代码去修改的,那是不会触发命令的。
如果是通过编辑等行为修改,那可以通过一些 ...

比如我对一个单元设置 值 或者 修改样式这样,通过 cell.value 或者 cell.style 这样的接口是无法触发命令监听的是吧?必须通过执行command来修改才能监听到?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部