如何在 Phoenix Framework 中创建全局视图?
How to create a global view in Phoenix Framework?
如果我想创建一个模块,其功能可以在每个模板中访问,并且我可以在其中使用视图的所有功能(创建标签、使用路由器路径等),最好的方法是什么实现那个?
简单来说,如何创建全局视图?
您可以定义一个包含您的函数的模块(我将其放在 helpers 目录中):
defmodule MyApp.SomeHelper do
def some_function do
#...
end
end
然后您可以将其包含在 MyApp.Web
的 view
函数下:
def view do
quote do
use Phoenix.View, root: "web/templates"
# Import convenience functions from controllers
import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2, view_module: 1]
# Import URL helpers from the router
import MyApp.Router.Helpers
# Use all HTML functionality (forms, tags, etc)
use Phoenix.HTML
# Import custom helpers
import MyApp.SomeHelper
end
end
some_function
功能现在将在所有模板中可用。
如果我想创建一个模块,其功能可以在每个模板中访问,并且我可以在其中使用视图的所有功能(创建标签、使用路由器路径等),最好的方法是什么实现那个?
简单来说,如何创建全局视图?
您可以定义一个包含您的函数的模块(我将其放在 helpers 目录中):
defmodule MyApp.SomeHelper do
def some_function do
#...
end
end
然后您可以将其包含在 MyApp.Web
的 view
函数下:
def view do
quote do
use Phoenix.View, root: "web/templates"
# Import convenience functions from controllers
import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2, view_module: 1]
# Import URL helpers from the router
import MyApp.Router.Helpers
# Use all HTML functionality (forms, tags, etc)
use Phoenix.HTML
# Import custom helpers
import MyApp.SomeHelper
end
end
some_function
功能现在将在所有模板中可用。