मैं क्लोजरस्क्रिप्ट का प्रयोग/सीख रहा हूं। कुछ सर्कल प्रदर्शित करने के लिए उत्कृष्ट d3.js lib के साथ कोड स्निपेट इंटरफेस के बाद। मैक्रोज़ का उपयोग किए बिना थोड़ा वर्बोज़ होने के लिए इसे ढूंढें, क्या इसे अनुकूलित/छोटा करने का कोई तरीका है?क्या यह मूर्खतापूर्ण क्लोजरस्क्रिप्ट माना जाएगा?
(def rdata (atom (array 3 10 12 16 19)))
(defn update []
(let [em (.selectAll (.select js/d3 "svg") "circle")
data (.data em @rdata d3/String)
enter (.append (.enter data) "circle")
yscale (.linear (. js/d3 -scale))
xscale (.linear (. js/d3 -scale))
rscale (.linear (. js/d3 -scale))
]
(-> yscale
(.domain (array 0 20))
(.range (array 100 200)))
(-> xscale
(.domain (array 0 20))
(.range (array 100 800)))
(-> rscale
(.domain (array 0 20))
(.range (array 50 100)))
(-> enter
(.attr "cx" xscale)
(.attr "cy" yscale)
(.attr "r" rscale)
(.style "fill" "steelblue")
(.style "stroke" "black")
(.style "stroke-width" "2")
)
)
(.info js/console "rdata: " @rdata)
)
धन्यवाद
राय और सिर ऊपर सी 2 और डी 3-cljs पर के लिए धन्यवाद केविन। सी 2 दिलचस्प लग रहा है, मैं पूरी तरह क्लाइंट साइड कार्यान्वयन की तलाश में हूं, क्या सी 2/क्लोजरस्क्रिप्ट के साथ ऐसा करना संभव है? – user922621
डेटा के लिए एटम के बारे में, कोड को एक डैशबोर्ड पर विकसित करना चाहते हैं जिसमें क्लाइंट को डेटा को बढ़ाया जा रहा है ... पता नहीं है कि एटम सही दृष्टिकोण है या नहीं? – user922621
एटम राज्य को संभालने के लिए एक महान दृष्टिकोण है। मैं इसे अलग करने की कोशिश करता हूं हालांकि: परमाणु को अपरिवर्तित परिभाषित करें लेकिन जितना संभव हो उतना कम करें - एफएन तर्कों के माध्यम से स्पष्ट रूप से डेटा को पास करना पसंद करते हैं। –