paa*_*hpa 8 elixir phoenix-framework
更改模板布局以put_layout在每个Controller操作中使用该方法的正确/最简单的方法是什么?想要为不同控制器设置不同布局的一个简单示例似乎变得非常重复(下面),所以感觉我在框架内缺少某些东西.
defmodule MyPhoenix.AController do
use MyPhoenix.Web, :controller
def pageOne(conn, _params) do
conn
|> put_layout("LayoutA.html")
|> render "page1.html"
end
def pageTwo(conn, _params) do
conn
|> put_layout("LayoutA.html")
|> render "page2.html"
end
end
defmodule MyPhoenix.BController do
use MyPhoenix.Web, :controller
def pageOne(conn, _params) do
conn
|> put_layout("LayoutB.html")
|> render "page1.html"
end
def pageTwo(conn, _params) do
conn
|> put_layout("LayoutB.html")
|> render "page2.html"
end
end
Run Code Online (Sandbox Code Playgroud)
Don*_*aio 19
我认为通过设置默认布局可能是最好的.
defmodule MyPhoenix.AController do
use MyPhoenix.Web, :controller
plug :put_layout, "LayoutA.html"
def pageOne(conn, _params) do
render conn, "page1.html"
end
def pageTwo(conn, _params) do
render conn, "page2.html"
end
end
defmodule MyPhoenix.BController do
use MyPhoenix.Web, :controller
plug :put_layout, "LayoutB.html"
def pageOne(conn, _params) do
render conn, "page1.html"
end
def pageTwo(conn, _params) do
render conn, "page2.html"
end
end
Run Code Online (Sandbox Code Playgroud)
Uģi*_*ols 12
例如,如果您需要一个不同的布局来说明路由器中的单独管理管道所涵盖的所有管理控制器,您可以plug :put_layout, {MyApp.LayoutView, :admin}为管道管道指定.我是从http://www.cultivatehq.com/posts/how-to-set-different-layouts-in-phoenix/了解到的.
| 归档时间: |
|
| 查看次数: |
4444 次 |
| 最近记录: |