1
我想向我的佈局中添加一個模板,該模板在每個頁面上都有相同的數據。例如,每個頁面的側邊欄中的最新帖子列表。去做類似的事情最好的方法是什麼?將模板和數據添加到Phoenix Framework中的佈局文件
我已經研究過的諧音,它好像你從你目前所在的控制器喂數據給它。如果我不想爲每個控制器都這樣做,那麼我只需要添加一個插件到抓取數據的路由器管道中,然後將其饋入到部分?
我想向我的佈局中添加一個模板,該模板在每個頁面上都有相同的數據。例如,每個頁面的側邊欄中的最新帖子列表。去做類似的事情最好的方法是什麼?將模板和數據添加到Phoenix Framework中的佈局文件
我已經研究過的諧音,它好像你從你目前所在的控制器喂數據給它。如果我不想爲每個控制器都這樣做,那麼我只需要添加一個插件到抓取數據的路由器管道中,然後將其饋入到部分?
您可以根據需要創建視圖和模板,並將其添加到佈局視圖。
例如:
# views/sidebar_view.ex
defmodule YourApp.SidebarView do
use YourApp.Web, :view
def recent_posts() do
Post.get_recent_posts()
end
end
<!-- templates/layout/sidebar.html.eex -->
<ul>
<%= for post <- recent_posts() do %>
<li><%= post.title %></li>
<% end %>
</ul>
於是最後,在你的佈局:
<!-- templates/layout/app.html.eex -->
<main role="main">
<%= render @view_module, @view_template, assigns %>
</main>
<aside role="complementary">
<%= render YourApp.SidebarView, "sidebar.html" %>
</aside>