2016-11-28 88 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 %>