Для заголовка страницы вы можете просто передать значение с вашего контроллера:
def edit(conn, params) do
render(conn, "edit.html", page_title: "Edit The Thing")
end
<head>
<title><%= assigns[:page_title] || "Default Title" %></title>
</head>
Обратите внимание, что здесь используется assigns[:page_title]
вместо @page_title
или assigns.page_title
, так как они будут ошибаться, если ключ :page_title
отсутствует в назначениях.
Для включения шаблонов (пример вашего скрипта) есть render_existing/3 (и документы для той же функции в последней версии Phoenix< /а>).
В документации приведен аналогичный пример того, что вы просили, поэтому я скопировал его здесь для удобства:
Рассмотрим случай, когда макет приложения позволяет представлениям динамически отображать раздел тегов сценария в заголовке документа. Некоторые представления могут захотеть внедрить определенные скрипты, а другие нет.
<head>
<%= render_existing view_module(@conn), "scripts.html", assigns %>
</head>
Затем модуль для представления @inner может принять решение о предоставлении скриптов либо с предварительно скомпилированным шаблоном, либо путем прямой реализации функции, т.е.:
def render("scripts.html", _assigns) do
"<script src="...">"
end
Чтобы использовать предварительно скомпилированный шаблон, создайте файл scripts.html.eex в каталоге шаблонов для соответствующего представления, для которого вы хотите его отображать. Например, для UserView создайте файл scripts.html.eex в папке web/templates/user/.
person
Gazler
schedule
02.09.2015