【问题标题】:Phoenix: Render content_tag as HTML?Phoenix:将 content_tag 渲染为 HTML?
【发布时间】:2016-10-27 04:53:41
【问题描述】:

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

{: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?

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    您可以使用Phoenix.HTML.Safe.to_iodata 和IO.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>
    

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 2017-01-29
      • 2011-06-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多