gpt4 book ai didi

elixir - Phoenix : render template that has assigns values inside a template

转载 作者:行者123 更新时间:2023-12-04 09:58:58 25 4
gpt4 key购买 nike

我正在尝试使我的应用程序干燥和模块化。但是,当我尝试将一个接收调用/“实例化”它时传递的动态值的组件(小模板)放入另一个模板(更大的模块)中时,我收到了这个错误:

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" %>

在保持小型组件/大型模块的逻辑干净和干燥的同时,让这项工作发挥作用的最佳方法是什么?

最佳答案

正如 AbM 所说,您需要明确传递您关心的分配,例如:

<%= render myapp.ModuleView, "header.html", conn: @conn %>

如果您想有条件地支持分配,您可以从 assigns 中引用它们。像这样:
<%= link "a link", to: "/", class: assigns[:class] || "default" %>

关于elixir - Phoenix : render template that has assigns values inside a template,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33963201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com