我试着让我的应用程序变得干燥和模块化。但是,当我尝试将一个组件(小模板)放在另一个模板(更大的模块)中,当调用/“实例化”它时接收传递的动态值时,我得到了以下错误:
assign @conn not available in eex template. Available assigns: []我插入模块(较大模板)中的组件(小模板)如下:
<div class="menuButton main <%= @class %>" id="<%= @id %>">
<div class="menuButton firstChild linesItem"></div>
<div class="menuButton firstChild textItem">MENU</div>
</div>我使用以下方法将其插入我的模块中:
<%= render myapp.ComponentView, "menuButton.html", class: nil, id: "menuButtonMenu" %>我在页面中插入了我的模块:
<%= render myapp.ModuleView, "header.html" %>在保持这个小组件/大模块的逻辑保持干净和干燥的同时,如何才能使它工作呢?
发布于 2015-11-27 20:05:33
正如AbM所说,您需要显式传递您关心的赋值,例如:
<%= render myapp.ModuleView, "header.html", conn: @conn %>如果要有条件地支持赋值,可以在assigns上引用它们,如下所示:
<%= link "a link", to: "/", class: assigns[:class] || "default" %>https://stackoverflow.com/questions/33963201
复制相似问题