Постоянные шаблоны (или повторное использование шаблонов) с Hogan/Mustache?

Не совсем уверен, что мне нужны «постоянные шаблоны», я впервые использую механизм шаблонов Javascript. Мне любопытно, есть ли способ сохранить данные шаблона нетронутыми для целей повторного рендеринга документа после его рендеринга...

Пример -- я определяю простой фрагмент шаблона:

<div id="price">Price: {{current_price}}</div>

Я делаю это:

var template = Hogan.compile($("#price").html())
$("#price").html(template.render(price_data))

Допустим, я хочу обновлять информацию о цене каждые X секунд (отправить запрос, получить JSON и отправить его обратно в #price), повторный рендеринг шаблона завершится ошибкой, так как {{current_price}} больше нет. Я мог бы просто сделать что-то вроде $('#price').text('Price: ' + price_data) после успешного запроса, но я чувствую, что это каким-то образом делает идею использования шаблонов бесполезной.

Итак, вопрос в том, как повторно использовать шаблоны в документе? Кэшируйте данные шаблона в переменную и повторно используйте ее при рендеринге или есть более умный способ?

Спасибо.


person Hamza    schedule 28.01.2015    source источник


Ответы (1)


Вы не должны использовать что-то в качестве собственного шаблона, вы столкнетесь со всевозможными проблемами (особенно когда вы начнете добавлять теги усов к атрибутам, или условно отображать теги html, или что-то в этом роде).

Сделайте свой шаблон отдельным элементом на странице. И сделайте себе одолжение и используйте для этого тег <script type="text/x-mustache">.

person bobthecow    schedule 29.01.2015
comment
Спасибо, это звучит разумно. - person Hamza; 02.02.2015