【发布时间】:2018-01-17 20:06:03
【问题描述】:
如何向preEscapedToHtml 添加一个类?
renderHtml $ preEscapedText "<div>a</div>" ! class_ "c"
"<div>a</div>"
还是到一个由 hamlet 模板生成的 HTML?
然而这是可行的:
renderHtml $ H.div "a" ! class_ "c"
"<div class=\"c\">a</div>"
【问题讨论】:
-
preEscapedText "<div class=\"c\">a</div>"对你不起作用? -
没有。它不干。我将不得不使用不同的类来制作重复的功能。例如
userPhotoProfile = preEscapedText "<div class="user-photo-profile"><img....和userPhotoOther = preEscapedText "<div class="user-photo"><img....其中 ... 可以是冗长且重复的内容。 -
你用的是哪个,preEscapedToHtml 还是 preEscapedText?无论如何,你不能重构你的代码以使用
H.div "a" ! class_ "c"方法吗?这样看起来干净多了。 -
@ricardos 如果你想要 DRY,你可以参数化它:
mkDiv c = preEscapedText ("<div class=\"" ++ c ++ "\">a</div>")。preEscapedText的重点是你只是给它一些文本,它并不真正知道它里面是否有任何标签或任何东西。所以自然它不能对注入类做任何事情。 -
@FyodorSoikin 不够好,在某些情况下我想添加一个类,也许在其他情况下我需要添加一些“data-*”属性或任何要求。