Ответ 1
Что вы ищете, если хотите наследование шаблона и синтаксис DTL, Nunjucks:
В структуре Django шаблоны веб-страниц могут наследоваться от других шаблонов. В шаблоне вашего ребенка вы определяете блоки кода, которые переопределяют аналогичные блоки в родительских шаблонах. Я предполагаю, что есть и другие серверные системы шаблонов, которые также работают таким образом, но Django - это тот, с которым я знаком.
Может ли какая-либо из существующих систем шаблонов javascript поддерживать наследование типа django?
Что вы ищете, если хотите наследование шаблона и синтаксис DTL, Nunjucks:
У Mustache.js есть поддержка partials, которые работают аналогичным образом. Кроме этого, я не смог ничего найти - может быть, я это сделаю...
*
Хорошо, они совсем не похожи на шаблоны Django, но они - самый близкий симулякр, который я мог найти.
Шаблон jQuery имеет тег шаблона {{wrap}}, который похож на расширение:
Хотя это не "наследование шаблонов", но Beard.js может помочь вам повторно использовать шаблон, создав ссылки на шаблоны, которые, я думаю, помогут вам достичь той же цели.
Посмотрите Handlebars.js. Это позволяет вам определять вспомогательные методы, которые можно использовать для разделения различных блоков, и эхо-сигналы, аналогичные Rails 'content_for :my_area
и yield :my_area
.
Да, с Dustjs, вы можете иметь шаблон, наследующий основную часть его содержимого из общего базового шаблона. Вот как это работает: Dustjs: (см. Раздел "Блоки и встроенные частицы" )
В файле "base_template":
Start
{+title/}
Middle
{+main/}
End
Шаблон, который "наследует" base_template:
{>base_template/}
{<title}
Child Title
{/title}
{<main}
Child Content
{/main}
Результаты в чем-то вроде:
Start
Child Title
Middle
Child Content
End
Связанный вопрос: поддерживается только 1 уровень наследования: Есть ли способ сделать более одного уровня переопределения значений наследования с помощью dust.js?
Проделана определенная работа по добавлению наследования шаблонов к Handlebars.
См. довольно недавнюю проблему GitHub: https://github.com/wycats/handlebars.js/issues/208
И это сообщение в блоге: Наследование шаблонов для ручек