Как заставить вяз отображать HTML из вызова ajax

У меня есть следующий код Elm, он выполняет вызов Ajax, который возвращает некоторый HTML, который я хочу встроить непосредственно в дом. Проблема в том, что код здесь экранирует html, поэтому пользователь видит разметку, а не предполагаемый результат. Поэтому мне нужно заменить обычный текст чем-то другим, но я не понимаю, что это будет.

load_comp_from_comp_set : String -> Signal Element
load_comp_from_comp_set compset_id =
  Signal.constant ("http://localhost:8000/finch/compset/" ++ compset_id)
  |> Http.sendGet
  |> Signal.map (result >> plainText)

elm
person Zachary K    schedule 17.02.2015    source источник


Ответы (1)


Вы можете использовать Markdown.toElement из библиотека elm-markdown. Я попробовал следующий код на elm-lang.org/try, и он внедрил HTML, как и ожидалось.

import Markdown

main = Markdown.toElement """
<div>
  <h1 style="display: inline">Hello!</h1>
  <span></span> <sub>world</sub>
</div>
"""

Вы можете использовать elm-package для установки библиотеки, чтобы elm-make автоматически ее подбирал. Это должно быть так же просто, как elm-package install evancz/elm-markdown.

person Apanatshka    schedule 17.02.2015
comment
@ZacharyK Странно. Я не могу воспроизвести эту проблему с моим небольшим примером кода. elm-markdown — это тонкая оболочка вокруг marked, так что, может быть, вы сможете найти там свою проблему? - person Apanatshka; 17.02.2015