вложенные шаблоны в html/template

381 views
Skip to first unread message

John Doe

unread,
Sep 1, 2015, 11:04:27 AM9/1/15
to Golang Russian
подскажите пожалуйста как реализовать вложенные шаблоны на html/template типа того что ниже?
но надо так чтобы шаблон из файл2 наследовал все из шаблона файла1. а не наоборот как во всех примерах
т.е. файл1 базовая структура страницы, а все последующие наследуют ее содержимое и добавляют свои блоки 


файл 1
{{define "base"}}
<!DOCTYPE html>
<html>
<body>
{{template "content" .}}
</body>
</html>
{{end}}



файл 2
{{define "content"}}
.......
{{end}}


и далее, что-то типа

tpl, _ := template.ParseGlob("templates/*")
w.Header().Set("Content-Type", "text/html; charset=utf-8")
tpl.ExecuteTemplate(w, "base", nil)
tpl.ExecuteTemplate(w, "content", nil)





Denis Bakhtin

unread,
Sep 1, 2015, 1:50:49 PM9/1/15
to gola...@googlegroups.com
В стандартном темплейте похоже никак, а из сторонних, например, в этом можно https://github.com/yosssi/ace

1 сентября 2015 г., 17:59 пользователь John Doe <xena...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

John Doe

unread,
Sep 1, 2015, 2:48:24 PM9/1/15
to Golang Russian
нашел, вчера видимо переутомился ))

можно так сделать конечно же стандартным шаблонизатором, вот тут подробно   

Denis Bakhtin

unread,
Sep 1, 2015, 7:49:20 PM9/1/15
to gola...@googlegroups.com
Да, но все равно не понятно, что делать, если шаблон content должен отличаться в зависимости от модели (товар, страница, пользователь). У каждого из них content имеет свое представление, да и набор смежных блоков может отличаться для этих сущностей. В стандартной библиотеке я решения для этих случаев не нашел.

1 сентября 2015 г., 21:48 пользователь John Doe <xena...@gmail.com> написал:
нашел, вчера видимо переутомился ))

можно так сделать конечно же стандартным шаблонизатором, вот тут подробно   

--

John Doe

unread,
Sep 2, 2015, 10:32:16 AM9/2/15
to Golang Russian
когда набор темплейтов(блоков) в файле с шаблоном существенно отличается и имеет другой набор этих темплейтов это как раз другой шаблон )
меня интересовала ситуация когда нет смысла повторять для каждой страницы кучу инклудов и страницы мало отличаются от базовой
Reply all
Reply to author
Forward
0 new messages