7
すべてのテンプレートでアクセスできる機能を持つモジュールを作成し、ビューのすべての機能(タグの作成、ルータパスの使用など)を使用できるようにするには、これを達成する最良の方法は何ですか?Phoenix Frameworkでグローバルビューを作成する方法は?
簡単に言えば、グローバルビューを作成するにはどうすればよいですか?
すべてのテンプレートでアクセスできる機能を持つモジュールを作成し、ビューのすべての機能(タグの作成、ルータパスの使用など)を使用できるようにするには、これを達成する最良の方法は何ですか?Phoenix Frameworkでグローバルビューを作成する方法は?
簡単に言えば、グローバルビューを作成するにはどうすればよいですか?
あなたはそれにあなたの機能を持つモジュール(私はヘルパーディレクトリにそれを置くところ)を定義することができます:あなたは、その後view
機能の下MyApp.Web
に含めることができ
defmodule MyApp.SomeHelper do
def some_function do
#...
end
end
を:
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
の機能は、すべてのテンプレートで利用できるようになりました。
この 'MyApp.SomeHelper'に' MyApp.Router.Helpers'をインポートし、 'Phoenix.HTML'を使用してすべてのビュー関数を使用できるようにする必要がありますか? – JustMichael
本当にあなたの関数がどのように見えるかによって異なります。彼らが 'MyApp.Router.Helpers'と' Phoenix.HTML'の関数を使用している場合、あなたはそうなります。または、長い名前を使用することもできます。例えば。 'MyApp.Router.Helpers.user_path(conn、:index)' – Gazler
ありがとう、ありがとう – JustMichael