سؤال

أحاول إخفاء عنصر في 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>
<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>

لكني لا أحصل على أي نتائج عند فتح الموقع في المتصفح وليس لدي أي فكرة عن السبب:< ولا يمكنني العثور على أي وثائق حول ClojureScript خارج صفحة Github.

هل كانت مفيدة؟

المحلول

الشيء هو ذلك map إرجاع تسلسل كسول من العناصر.التسلسل البطيء هو نوع من الوعد غير المحقق بما يمكنك الحصول عليه.تريد أن ينتج عن تسلسلك بعض الآثار الجانبية.لإنجاحه، تحتاج فقط إلى إدراكه.

المشكلة تافهة.لديك خياران:

1) أدرك تسلسلك البطيء باستخدام doall وظيفة، مثل ذلك:

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

هذا هو الهدف بالضبط doall:قم بالمشي خلال التسلسل بأكمله وفرض أي تأثيرات محتملة.

2) الاستخدام doseq والذي يهدف إلى إنتاج آثار جانبية، مثل هذا:

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

و هذا كل شيء!في كلتا الحالتين يجب أن تحصل على نفس النتيجة.

هل هناك المزيد من الأسئلة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top