Pregunta

Estoy tratando de ocultar un elemento en la ClojureScript más específicamente, de la Dommy biblioteca.Esto es lo que tengo hasta el momento:

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>

Pero no obtengo resultados cuando se abra el sitio en un navegador y no tengo idea de por qué :< y no puedo encontrar ninguna documentación en ClojureScript más allá de la página de Github.

¿Fue útil?

Solución

La cosa es que map devuelve un perezoso secuencia de elementos.Perezoso de secuencia es un tipo de pérdidas no realizadas promesa de lo que puede obtener.Usted quiere que su secuencia para producir algunos efectos secundarios.Para hacerlo funcionar sólo necesita para darse cuenta de ello.

El problema es trivial.Usted tiene dos opciones:

1) darse Cuenta de su perezoso secuencia utilizando doall su función, como que:

(doall (map dommy/toggle! (sel :.hide)))

Ese es exactamente el objetivo de doall:caminar a través de toda la secuencia y la fuerza de los posibles efectos.

2) el Uso de doseq que está destinado a producir efectos secundarios, como que:

(doseq [el (sel :.hide)]
    (dommy/toggle! el))

Y eso es todo!De ambas maneras se debe obtener el mismo resultado.

Más preguntas?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top