Ocultar um elemento Clojurescript Dommy
-
23-12-2019 - |
Pergunta
Eu estou tentando esconder um elemento na ClojureScript, mais especificamente, a Dommy a biblioteca.É isso que eu tenho até agora:
ClojureScript:
(ns fucking_about
(:require
[dommy.utils :as utils]
[dommy.core :as dommy])
(:use-macros
[dommy.macros :only [node sel sel1]]))
(map dommy/toggle! (sel :.hide))
HTML:
<html>
<head><title></title></head>
<body>
<ul>
<li class="show">Derp</li>
<li class="hide">Herp</li>
<li class="show">ies!</li>
</ul>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
Mas eu não obter resultados quando a abertura do site em um navegador e não tenho idéia do porquê :< e eu não consigo encontrar alguma documentação sobre ClojureScript além da página do Github.
Solução
A única coisa é que map
retorna um preguiçoso sequência de elementos.Preguiçoso sequência é algum tipo de realizar a promessa de que você pode obter.Você quer que sua seqüência para produzir alguns efeitos colaterais.Para fazer isso funcionar você só precisa para realizá-lo.
Problema é trivial.Você tem duas opções:
1) Perceber o seu preguiçoso sequência de uso doall
função, como:
(doall (map dommy/toggle! (sel :.hide)))
Que é exatamente o objetivo de doall
:a pé, através de toda a sequência e força eventuais efeitos.
2) Use doseq
que se destina a produzir efeito colateral, como:
(doseq [el (sel :.hide)]
(dommy/toggle! el))
E isso é tudo!Ambas as maneiras, você deve obter o mesmo resultado.
Mais alguma pergunta?