1

有没有人经历过这个?我有供应商的 mustache.js 0.5.1。我的供应商文件是 Rails 提供的文件以及我在浏览器中看到的文件。当我调用 Mustache.to_html 时,它的功能没有执行(0.4.0 没有Mustache.render,这就是我发现这个问题的方式)。调用Mustache.version返回“0.4.0-dev”。某事,某处,正在做一些邪恶的事。

  • 供应商/资产/javascripts/mustache.js 是 0.5.1。
  • Mustache.version在 Chrome 控制台中返回“0.4.0-dev”......所以有些东西正在覆盖 Mustache 原型。邪恶的东西。
  • 我们已经杀死了代码/rubymonk/tmp
  • 我们已经反弹了资产缓存
  • 我们已将资产设置为调试模式
  • 我们已经切换到生产环境,预编译资产,并寻找挥之不去的垃圾
  • 我们似乎没有在浏览器中加载 0.4.0 版本的 mustache——但是我们的 0.5.1 代码没有执行(我们添加的 console.log 语句不会运行,实际的 mustache 文件永远不会被命中由调试器)
  • 我们已经完成了 'mustache' 和 '0.4.0-dev' 的 code/rubymonk 目录的完整 grep.... nadda(除了你所期望的)
  • 我们已经查看了整个硬盘驱动器(至少和 Spotlight 一样……但它似乎做得很好)
  • 我们已经为 'mustache' 和 '0.4.0-dev' 找到了 gems 目录......再次,什么都没有。

如果我真的做错了什么,我会在我们排序后发布解决方案。

-s-

4

1 回答 1

1

解决!Mustache我们的应用程序正在使用 Intercom (http://intercom.io)——这在其他方面非常出色——但我们下载的对讲 Javascript 似乎在全局命名空间中被吹走了。

我会向他们发送一条消息,要求他们为他们的东西命名。与此同时,我想我们只需要修改我们自己的 mustache.js 副本以不同的命名空间。也就是说,添加以下内容:

var MyApp = MyApp || {};

并将出现的 替换MustacheMyApp.Mustache

希望这对其他人有帮助。如果没有,至少我可以享受在 StackOverflow 海上航行的短暂船只。

-史蒂文

PS:我们发现这一点是因为我们试图在客户端用纯 Javascript 渲染 mustache 部分,这显然在 mustache 0.4.0 中被破坏了(它只会将我们的调用直接吐出{{ > mypartial }}到 HTML 中,什么也不渲染。

于 2012-06-27T05:01:49.473 回答