Elixir Phoenix:模板中字符串中的插值函数
我想在一组面包屑中显示一个链接(使用Slime进行标记) 这就很好了。但我想在上下文中显示它,并提供其他链接Elixir Phoenix:模板中字符串中的插值函数,elixir,phoenix-framework,Elixir,Phoenix Framework,我想在一组面包屑中显示一个链接(使用Slime进行标记) 这就很好了。但我想在上下文中显示它,并提供其他链接 # by concatenation = link("Projects > ", to: project_path(@conn, :index)) <> link(@project.name, to: project_path(@conn, :show, @project)) # or by interpolation #{link("Projects", to: p
# by concatenation
= link("Projects > ", to: project_path(@conn, :index)) <> link(@project.name, to: project_path(@conn, :show, @project))
# or by interpolation
#{link("Projects", to: project_path(@conn, :index))} > #{link(@project.name, to: project_path(@conn, :show, @project))}
通过串联
=link(“Projects>”,to:project_path(@conn,:index))link(@project.name,to:project_path(@conn,:show,@project))
#或者通过插值
#{link(“Projects”,to:project_path(@conn,:index))}>{link(@project.name,to:project_path(@conn,:show,@project))}
所需的输出如下所示:
项目名称
然而,这两种技术都不起作用。如何将此链接添加到此文本
如果您可以解释为什么不能像上面那样工作,那么您可以获得额外的积分。只要将其设置为多行:
= link("Projects > ", to: project_path(@conn, :index))
= link(@project.name, to: project_path(@conn, :show, @project))
您仍然可以将其放在一行中:
link
函数返回如下元组:{:safe,“link\u string”}
。如果希望将链接用作字符串,则需要通过Kernel.elem(tuple,1)从元组中选取第二个元素。
您还需要使用raw()
呈现任何html标记
这项工作:
= raw "#{Kernel.elem(link("Projects > ", to: project_path(@conn, :index)), 1)} #{Kernel.elem(link(@project.name, to: project_path(@conn, :show, @project)), 1)}"
你为什么不把它们排成不同的行呢<代码>=link(…)\n |>\n=link(…)?我认为插值提供了更多的控制和清晰度,但我明白你的意思
= raw "#{Kernel.elem(link("Projects > ", to: project_path(@conn, :index)), 1)} #{Kernel.elem(link(@project.name, to: project_path(@conn, :show, @project)), 1)}"