【发布时间】:2020-05-21 02:45:02
【问题描述】:
在Phoenix 中,有什么方法可以指定使用哪个View,而不是让Controller 从命名空间变形?
我有多个控制器,对于每个控制器的视图,方法都是相同的。我想创建一个视图并将它与(几乎)我所有的控制器一起使用。
这可能吗?更重要的是,在我的情况下这是一种不好的做法还是合理的?
【问题讨论】:
在Phoenix 中,有什么方法可以指定使用哪个View,而不是让Controller 从命名空间变形?
我有多个控制器,对于每个控制器的视图,方法都是相同的。我想创建一个视图并将它与(几乎)我所有的控制器一起使用。
这可能吗?更重要的是,在我的情况下这是一种不好的做法还是合理的?
【问题讨论】:
您可以使用put_view/2 来设置视图模块。鉴于您的描述,这不是坏习惯。您可以将以下代码放入控制器中:
plug :put_view, MyApp.TheView
或者您可以修改控制器内单个功能的视图,例如:
def index(conn, _params) do
conn
|> put_view(MyApp.TheView)
|> render("index.html")
end
【讨论】: