2016-11-28 79 views
0

相關的「EX」文件中的助手我在我的佈局呈現一個共享的頭:喜歡的東西在鳳凰城的框架或部分

<%= render(MyApp.SharedView, "header.html") %> 

在標頭,我需要計算一些數據來創建一個字典,它需要相當多的代碼。我想我不應該把代碼放到「header.html」中,而應該保留在「.ex」文件中,但是哪一個?在每個控制器中放置或插入相同的代碼並不明智。什麼是與「header.html」相關的「.ex」文件?如果它是MyApp.SharedView,我應該如何將它的變量傳遞給「header.html」?

在Rails中,它是一個幫手。

回答

1

如果是MyApp.SharedView

是的,這是MyApp.SharedView

如何將我的變量從它傳遞給「header.html」?

你不通過從SharedView變量header.html.eex,你應該在SharedView創建一個函數,並調用從header.html.eex(就像你在Rails中調用一個輔助函數從視圖),例如

defmodule MyApp.SharedView do 
    ... 
    def generate_dictionary(arg) do 
    %{a: 1, b: 2} 
    end 
end 

然後,在header.html.eex

<%= for {k, v} <- generate_dictionary(123) do %> 
    <%= k %>: <%= v %> 
<% end %>