피닉스 1.6 페이지 제목

4562 단어 elixirphoenix
컨트롤러 보기와 라이브 보기를 모두 지원하고 싶었기 때문에 사용자 정의awesome_title_tag 보기 도우미 기능을 만들었습니다.

보다



lib/mnishiguchi_web/views/layout_view.ex
defmodule MnishiguchiWeb.LayoutView do
  use MnishiguchiWeb, :view

  @site_name "Mnishiguchi"
  def site_name(), do: @site_name

  def awesome_title_tag(conn, assigns) do
    live_title_tag(page_title(conn, assigns) || @site_name, suffix: " · #{@site_name}")
  end

  # live view
  defp page_title(_conn, %{page_title: page_title} = _assigns) do
    page_title
  end

  # controller view
  defp page_title(conn, assigns) do
    if function_exported?(view_module(conn), :page_title, 2) do
      view_module(conn).page_title(view_template(conn), assigns)
    else
      @site_name
    end
  end
end


주형



/lib/mnishiguchi_web/templates/layout/root.html.leex
   <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
   <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
   <%= csrf_meta_tag() %>
-  <%= live_title_tag assigns[:page_title] || "Home", suffix: " · Masatoshi Nishiguchi" %>
+  <%= awesome_title_tag(@conn, assigns) %>


자원



Phoenix 1.4와 1.5 사이의 주요 변경 사항으로 인해 많은 예제가 Phoenix 1.5에서 작동하지 않았습니다.

다음은 내가 참조한 몇 가지 리소스입니다.
  • Page title via live view route that’s compatible with existing code in regular views?
  • @view_template meaning changed in phoenix 1.5
  • Phoenix Live View 0.10.0 Backwards incompatible changes

  • 그게 다야

    좋은 웹페이지 즐겨찾기