Rails (3.0.3 / 1.9) では Jammit を使用して静的圧縮とその他すべてのフロントエンド機能を提供しています。Javascript テンプレートを使用して、見苦しいフロントエンド コードを置き換えようとしていますが、デフォルトの JST コンパイラは Windows の改行を処理できないようです。
assets.yml ファイル:
embed_assets: on
javascripts:
plugins:
- app/views/**/*.jst
_topicPreview.jst をすべて 1 行にすると、正常にコンパイルされます。
<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 にマージされる保留中の修正があるようです。