首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何恢复/重用json序列化对象?

如何恢复/重用json序列化对象?
EN

Stack Overflow用户
提问于 2016-02-03 04:38:54
回答 2查看 2K关注 0票数 3

我正在尝试用socket.io和fabric.js创建一个协作白板。

当用户绘制一些东西时,我以JSON格式将路径发送给其他用户:

代码语言:javascript
复制
canvas.on('path:created', function(e) {
  canvas.remove(fabric.Path.fromObject(JSON.stringify(e.path)));
  socket.emit('add path', e.path.toJSON());
});

我如何在这里的画布上重新创建这个对象?

代码语言:javascript
复制
socket.on('add path', function(path) {
  canvas.add(path); // doesn't work
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-03 07:55:17

尝试使用fabric.util.enlinvenObjects

该函数的目的是从对象形式切换到静态函数。

代码语言:javascript
复制
socket.on('add path', function(path) {
  fabric.util.enlivenObjects([path], function(objects) {
    objects.forEach(function(o) {
      canvas.add(o);
    });
  });
});
票数 3
EN

Stack Overflow用户

发布于 2021-10-26 14:40:13

对于那些在TypeScript项目中调用此函数的人..。在我的例子中,将namespace设置为空字符串(''),并显式键入回调参数,可以使函数顺利工作。

代码语言:javascript
复制
fabric.util.enlivenObjects(
        action.payload.objects,
        (enlivedObjects: fabric.Object[]) => {
          canvas.add(...enlivedObjects);
          canvas.renderAll();
        },
'');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35168635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档