elixir - Phoenix : Render content_tag as HTML?

标签 elixir phoenix-framework

跟着这个 Jose Valim发布后,我最终得到了来自对 #content_tag 的调用的 HTML 信息的嵌套元组。

{:safe,
 [60, "div", " class=\"form-group \"", 62,
  [[60, "label", " class=\"control-label\" for=\"_username\"", 62, "Username",
    60, 47, "label", 62],
   [60, "textarea",
    " class=\"form-control\" id=\"_username\" name=\"[username]\"", 62,
    ["\n", "username"], 60, 47, "textarea", 62], ""], 60, 47, "div", 62]}

我想编写一个测试来检查输出,但我宁愿检查生成的 HTML 而不是嵌套的元组。如何将此结果呈现为 HTML?

最佳答案

您可以使用 Phoenix.HTML.Safe.to_iodataIO.iodata_to_binary 将其转换为字符串:

iex(1)> raw = {:safe,
...(1)>  [60, "div", " class=\"form-group \"", 62,
...(1)>   [[60, "label", " class=\"control-label\" for=\"_username\"", 62, "Username",
...(1)>     60, 47, "label", 62],
...(1)>    [60, "textarea",
...(1)>     " class=\"form-control\" id=\"_username\" name=\"[username]\"", 62,
...(1)>     ["\n", "username"], 60, 47, "textarea", 62], ""], 60, 47, "div", 62]}
iex(2)> raw |> Phoenix.HTML.Safe.to_iodata |> IO.iodata_to_binary |> IO.puts
<div class="form-group "><label class="control-label" for="_username">Username</label><textarea class="form-control" id="_username" name="[username]">
username</textarea></div>

关于elixir - Phoenix : Render content_tag as HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40271865/

相关文章:

elixir - 有没有办法使用 ExUnit 中的共享示例?

jquery - 如何向 Phoenix 项目添加 CSS/JS 依赖?

Elixir - 将 float 转换为字符串

elixir - 使用保护子句自省(introspection)函数

heroku - Phoenix + Ueberauth + 谷歌 + Heroku : internal server error

logging - 灵药/Phoenix : How to customize HTTP request log format?

mongodb - 如何使用 Ecto 更新嵌入列表中的一个子文档?

datetime - 在 Elixir 中是否有类似 get DaysInMonth 的东西?

phoenix-framework - 使用 Phoenix 框架呈现导航的最佳方式是什么?

elixir - Phoenix 生成器 phoenix.gen.json 与 mix phx.gen.json