Elixir Phoenix附加布局变量,如@inner
我希望为布局添加额外的布局参数,如Elixir Phoenix附加布局变量,如@inner,elixir,phoenix-framework,Elixir,Phoenix Framework,我希望为布局添加额外的布局参数,如@internal。例如,用于@title的@title,以及用于为单个页面加载javascript的区域 window.onload = function () { @onload_js } 这些都是在布局中设置的,所以我不确定在凤凰城处理这些问题的最佳方式。谢谢:D.对于页面标题,您只需从控制器传递一个值: def edit(conn, params) do render(conn, "edit.html", page_title: "Edit
@internal
。例如,用于@title
的@title
,以及用于为单个页面加载javascript的区域
window.onload = function () {
@onload_js
}
这些都是在布局中设置的,所以我不确定在凤凰城处理这些问题的最佳方式。谢谢:D.对于页面标题,您只需从控制器传递一个值:
def edit(conn, params) do
render(conn, "edit.html", page_title: "Edit The Thing")
end
<head>
<title><%= assigns[:page_title] || "Default Title" %></title>
</head>
然后,@internal视图的模块可以决定为脚本提供预编译模板,或者直接实现函数,即:
def render(“scripts.html”,_赋值)执行
""
结束
要使用预编译模板,请在templates目录中为要为其渲染的相应视图创建scripts.html.eex文件。例如,对于UserView,在web/templates/user/处创建scripts.html.eex文件
对于页面标题,您只需从控制器传递一个值:
def edit(conn, params) do
render(conn, "edit.html", page_title: "Edit The Thing")
end
<head>
<title><%= assigns[:page_title] || "Default Title" %></title>
</head>
然后,@internal视图的模块可以决定为脚本提供预编译模板,或者直接实现函数,即:
def render(“scripts.html”,_赋值)执行
""
结束
要使用预编译模板,请在templates目录中为要为其渲染的相应视图创建scripts.html.eex文件。例如,对于UserView,在web/templates/user/处创建scripts.html.eex文件
太神了谢谢你的解释。在解决这个问题上帮了大忙。这是可行的,但是如果你想添加很多特定于页面的元数据呢。你的控制器方法很快就会变得一团糟!另外,控制器应该用于业务逻辑。我建议使用render_existing/2函数,如前所述!谢谢你的解释。在解决这个问题上帮了大忙。这是可行的,但是如果你想添加很多特定于页面的元数据呢。你的控制器方法很快就会变得一团糟!另外,控制器应该用于业务逻辑。我建议使用render_existing/2函数,如前所述
def render("scripts.html", _assigns) do
"<script src="...">"
end