[英]How to replace deprecated ~E sigil with ~H in Phoenix render funciton
[英]Programmatically composing a ~H sigil in LiveView
如何用变量填充部分或整个〜H sigil? 我正在尝试使用它将一些现有的 html 表格标记插入 Liveview 页面。 我尝试了以下方法,但它们导致页面上出现“#{html_codes}”或“...”之类的文本,而不是在 Liveview 页面上插入表格。 如果有更好的方法可以在 LiveView 页面中插入任意 html 代码,我会全力以赴。
html_codes = """
<table> .... </table>
"""
~H"""
#{html_codes} or <%= html_codes %>
"""
从 Elixir Slack 频道收到了以下提示,并且成功了。
~H"""
<% = Phoenix.HTML.raw(html_codes) %>
"""
你需要做三件事:
确保您尝试包含的变量使用~H
语法
html_codes = ~H""" <table> .... </table> """
确保值在assigns
变量中
assigns = assign(assigns, html_codes: html_codes)
在模板中,使用@assign_name
语法引用值
~H""" <div><p>Here's a table:</p><%= @html_codes %></div> """
无论您是在render/1
回调、函数组件还是单独的*.heex
文件中,相同的语法都应该有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.