使用Jammit gem为Rails编译javascript模板?

时间:2011-03-09 00:02:21

标签: ruby-on-rails json templates jammit

我们使用Jammit进行Rails(3.0.3 / 1.9)静态压缩以及它提供的所有其他前端好东西。 我正在尝试使用Javscript模板来替换一些丑陋的前端代码,但看起来默认的JST编译器无法处理Windows换行符:

assets.yml文件:

embed_assets: on

javascripts:
  plugins:
  - app/views/**/*.jst

当我在一行上有_topicPreview.jst时,它编译得很好:

<div class='TopicPreview <%= typeName %>'><div class='Title'>   <%= summary %> </div><div class='Meta'>  <span class='LastUpdate'>    <%= updatedAt %>  </span>  <span class='PostCount'>    |     <%= postsCount %>     Posts     |  </span>   <span class='LikeCount'>    <%= likesCount %>     Likes  </span>  </div></div>

页面加载,我有JST._topicPreview([JSON版本的主题])方法可用。美丽。

JST的一半吸引力是可读性/可维护性,所以我希望我的JST具有适当的格式。只要我在JST文件中添加换行符,页面就会在Uncaught SyntaxError: Unexpected Token ILLEGAL

中抛出window.JST['_topicPreview'] = template('...[the escaped JST file]...')

在代码跟踪中,我可以看到它解析并转义单引号,所以我很惊讶它无法处理换行符。

还有其他人遇到过这个问题吗? 是否有一个更清晰的解决方案,而不是将一些额外的字符串替换为模板生成代码?

元: 我是javascript模板的新手,但是他们应该拥有自己的StackOverflow标签吗?

修改

看起来这是一个已知的问题,有一个挂起的修复程序要合并到gem中。

Windows line breaks in Jammit JST compiler

1 个答案:

答案 0 :(得分:1)

Fix has been added to the gem。 Windows开发人员欢喜。