【问题标题】:How do I use fabric.js with Meteor using the script tag?如何使用 script 标签将 fabric.js 与 Meteor 一起使用?
【发布时间】:2013-02-26 01:40:28
【问题描述】:

我是 Meteor 的新手。我已经设法使用 Meteor 和 Fabric.js 制作了一些简单的程序,但现在我尝试将它们一起使用,我无法让它工作。

我通过在主 html 文件的头部使用脚本标记来包含 Fabric.js,但是当我从客户端 JS 调用 fabric.Canvas 时,它无法识别该库。我在 Firefox JS 控制台中得到的错误是“ReferenceError: fabric is not defined”。我把 js 文件放在了我的公共目录中。

我在 SO 上环顾四周,看到了有关包含节点模块的线程,但我只是想使用 js 文件而不是包含整个模块。我确实在 GitHub 上找到了一个使用 script 标签没有问题的项目:https://github.com/6/realtime-fabric 我不熟悉 CoffeeScript,所以也许我遗漏了一些东西,但我认为他所做的与我没有什么不同。您能提供的任何帮助将不胜感激!

【问题讨论】:

    标签: javascript meteor fabricjs


    【解决方案1】:

    在您的项目中添加一个“客户端”目录并将 fabric.js 文件放在其中。 Meteor 将这个目录中的文件打包,然后发送给客户端。您不需要在 HTML 中使用脚本标记。

    http://docs.meteor.com/#structuringyourapp

    【讨论】:

    • 谢谢!我试过你说的,但我仍然得到同样的错误。编辑:糟糕,我没有意识到 enter 会发布消息......我有 var canvas = new fabric.Canvas('c');在我的 client/client.js 文件中。我尝试将该行放在 client.js 中的 Meteor.startup 中,但这会导致我的浏览器挂起。
    • 尝试将您的结构代码放入 client.js 中的Template.myTemplate.rendered = function () {...};
    • 我现在遇到各种错误:gist.github.com/muraiki/29ce819bbf6319e014cc(我已将项目链接作为主旨标题)谢谢您的帮助。
    • 我在最后一条评论中不清楚。将fabric.js 保存在client 目录中的单独文件中。您的演示代码(以var canvas = new fabric.Canvas('c'); 开头)应位于Template.board.rendered
    • 哦,我现在明白了。我之前确实尝试过,但再试一次,我得到了相同的结果:浏览器在消耗更多内存时挂起。 :( 我最终搬到了 Raphael.js,虽然问题是我在 Template.board.rendered 中创建的画布无法从其他函数访问(比如集合上的 .observeChanges)。但这是另一个问题不同的线程。感谢您的所有帮助;看来我可能不得不将此作为错误报告给 Meteor 或 Fabric.js,但我不知道如何追查哪个是罪魁祸首。
    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2016-01-30
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    相关资源
    最近更新 更多