所以我有一個解決方案,但我想得到一些意見,看看是否有更好的方法來做到這一點。與Rails和Javascript共享模板
我的問題基本上是我列出的數據,將通過RoR加載生成,然後有JS控件來查看子集。我寧願不必支持基本相同的HMTL的兩個版本。所以我的解決辦法是這樣的,我有一個部分是紅寶石看起來是這樣的:
<% value1 = jsmode ? '#{value1}' : object.value1
value2 = jsmode ? '#{value2}' : object.value2 $>
<div class="object_template">
<div><$= value1 $></div>
<div><%= value2 %></div>
</div>
所以,當我使局部紅寶石,我通過一個false jsmode,它呈現像一個正常部分。然後,我將渲染局部再次用帶有模板ID的div包裝,但這次使用的是真正的jsmode。這將使用#{}字符串呈現html。然後我就可以通過模板爲原型模板對象是這樣的:
new Template($('template')).evaluate({value1: '111', value2: '222'});
所以我的問題是,是否有更好的方法來做到這一點?
我知道我可以使用#{}構造將變量傳遞給RoR,如果我用雙引號包裝它們,但我需要#{}來呈現JS模板。
想法?
這是我想做的一種,但我擔心模板上的換行符。我還沒有測試過,但將escape_js轉換成一行? – Rodrigo 2009-10-05 13:13:15
只是添加到我的評論。 JS沒有HEREDOC構造。我想要做的某種 HEREDOC 渲染部分 HEREDOC 我發現是人們說使用HTML的。 – Rodrigo 2009-10-05 13:14:57
我編輯了我的帖子,闡明瞭escape_javascript的工作原理。 – 2009-10-05 13:32:25