jifangege 2019-06-20
基于作用域范围, 可以在如下几个层次设置布局模板文件
特定于某个render函数调用的自定义布局模板文件设置
def index(conn, _params) do
render conn, "index.html", layout: {App.SearchView, "search.html"}
end在控制器级别设置布局模板
defmodule App.SearchController do
use App.Web, :controller
plug :put_layout, "search.html"
def index(conn, _params) do
render conn, "index.html"
end
end在路由中设置模板
# web/router.ex
pipeline :admin_layout do
plug :put_layout, {App.SearchView, :search}
end
scope "/search", App do
pipe_through [:browser, :search_layout]
resources "/search", App.SearchController
end我们知道 put_layout 可以用于在不同的范围内设置模板使用的布局文件, Phoenix 摸的布局文件为 app.html.eex, 如果你不需要使用布局文件, 可以吧 put_layout 设置为false, 这在需要输出自定义数据格式的时候是非常好用的.
put_layout conn, false