背景
在我学习 Phoenix LiveView 的过程中,我发现自己使用了一个使用已弃用符号的渲染函数:
def render(_assigns) do
~E"""
<menubar>
<menu label="<%= gettext "File" %>">
<hr/>
<item onclick="quit"><%= gettext "Quit" %></item>
</menu>
<menu label="<%= gettext "Extra" %>">
<item onclick="browser"><%= gettext "Open Browser" %></item>
</menu>
</menubar>
"""
end
eex
现在,我知道在 Elixir中使用代码是安全的。但是编译器说我应该用~H
. 所以我的第一次尝试如下:
def render(assigns) do
~H"""
<menubar>
<menu label="{@gettext('File')}">
<hr/>
<item onclick="quit"><%= gettext "Quit" %></item>
</menu>
<menu label="{@gettext 'Extra'}">
<item onclick="browser"><%= gettext "Open Browser" %></item>
</menu>
</menubar>
"""
end
哪个不起作用并且无法在菜单中正确显示文本:
问题
我究竟做错了什么?