Усы рендер на сервере (рельсы) и на клиенте (javascript) - PullRequest
4 голосов
/ 12 августа 2011

Есть ли документация по лучшим практикам усов при использовании на сервере (с rails) и на клиенте (с javascript)?

# hello_world.mustache
Hello {{planet}}

# some other file
<%
hello_world_template = File.read(File.dirname(__FILE__) + "/hello_world.mustache")
%>

<script id="hello_world_template" type="text/x-jquery-tmpl"> 
    <%= hello_world_template %>
</script>

<script>
    // $.mustache = using mustache.js and a jquery mustache wrapper 
    // search on "Shameless port of a shameless port"
    document.write($.mustache($("#hello_world_template").html(), { "planet" : "World!" }));
</script>

<%= Mustache.render(hello_world_template, :planet => "World!") %>

Выше не масштабируется. Я бы предпочел не делать свой собственный двигатель для этого.

Существует ли более полный шаблонизатор, позволяющий повторно использовать шаблоны на сервере и на клиенте?

Кроме того, который учитывает вложенные шаблоны на сервере и на клиенте?

Ответы [ 3 ]

5 голосов
/ 13 августа 2011

Есть Пуаро доступно: Усы + Рельсы 3.

2 голосов
/ 13 августа 2011

не знаком с синтаксисом ruby ​​on rails, но вот мое мнение:

a) Почему вы вообще хотите генерировать разметку на стороне сервера (если это вообще возможно), всегда отправляйтев json-данных клиенту, и пусть js mustache engine справится с этим

b) если вы все еще хотите сохранить серверный механизм рендеринга, то, что вы можете сделать, это сохранить все ваши шаблоны усов в папке и написатьСценарий, который вы выполняете во время сборки (или эквивалент в ruby ​​on rails), который объединяет все шаблоны в красиво оформленный JS-файл с правильными соглашениями об именах.

Что-то следующее:

var MUSTACHE_TEMPLATES= MUSTACHE_TEMPLATES || (function(){
var template1= "<big ass template>";
var template2="<small template>";

return
{
template1: template1,
template2: template2
}
}());
* 1009Что вы думаете об этом подходе?Теперь ваши шаблоны находятся в одном месте, и вы также получаете преимущества кэшируемого файла js
1 голос
/ 05 марта 2015

Швы stache для драгоценных камней - то, что вам нужно.Усы или рули + Рельсы 3 или Рельсы 4

...