Yesod: Можно ли повторить список haskell в Julius?

У меня есть список координат, которые мне нужно нанести на карту. Можно ли в julius перебирать список? Прямо сейчас я создаю скрытую таблицу в hamlet и получаю доступ к этой таблице в julius, что не кажется идеальным решением. Может ли кто-нибудь указать на лучшее решение? Спасибо.

edit: передача строки JSON для списка (который может быть прочитан julius), похоже, решает мою проблему.


person Akshat    schedule 21.05.2012    source источник


Ответы (1)


Насколько я знаю, вы не можете напрямую перебирать список в julius. Однако вы можете использовать экземпляр Monoid для типа Javascript для достижения аналогичного эффекта. Например:

import Text.Julius
import Data.Monoid
rows :: [Int] -> t -> Javascript
rows xs = mconcat $ map row xs
  where
    row x = [julius|v[#{show x}] = #{show x};
|]

Затем вы можете использовать rows xs везде, где обычно ставите блок Юлиуса. Например, в ghci:

> renderJavascript $ rows [1..5] ()
"v[1] = 1;\nv[2] = 2;\nv[3] = 3;\nv[4] = 4;\nv[5] = 5;\n"
person Judah Jacobson    schedule 22.05.2012