मैं एक बटन बनाना चाहता हूं, जिसे दबाए जाने पर, फ़ॉर्म में एक नया इनपुट (या टेक्स्टरेरा) जोड़ता है।आप एल्म में गतिशील रूप से इनपुट कैसे बनाते हैं?
उत्तर
यदि आप प्रत्येक बार बटन क्लिक करने के लिए एक टेक्स्ट फ़ील्ड जोड़ना चाहते हैं, तो इसका मतलब है कि आप प्रदर्शित टेक्स्ट फ़ील्ड की संख्या बटन क्लिक किए जाने की संख्या के बराबर होना चाहते हैं। हम एक सिग्नल बना सकते हैं जो हमें बताता है कि सिग्नल पर countIf id
का उपयोग कर बटन को कितनी बार क्लिक किया गया है।
यदि हमारे पास इनपुट की एक सूची है, तो हम उन्हें एक दूसरे के नीचे (या इसके अलावा) प्रदर्शित करने के लिए flow
का उपयोग कर सकते हैं। यह एक ऐसा फ़ंक्शन लिखने के लिए काफी आगे है जो n
लेता है और एक बटन और n
टेक्स्ट फ़ील्ड वाली एक सूची तैयार करता है।
तो अब हम सिर्फ lift
उपयोग कर सकते हैं हमारे संकेत है कि बटन क्लिक की संख्या की गणना करने के लिए है कि समारोह ऊपर हुक करने, गठबंधन कि flow
समारोह, और देखा के साथ, हम एक बटन है कि गतिशील रूप से निवेशों की सृष्टि की है।
(btn, clicked) = Input.button "Click me!"
-- Count how often the clicked signal is true
clicks = countIf id clicked
main = lift2 flow (constant down) $ lift nInputs clicks
nInputs n =
let helper n acc =
if n<=0 then btn : acc
else
-- Input.textField returns a pair containing the field as well as a signal
-- that you can use to access the field's contents. Since I don't actually
-- ever do anything with the contents, I just ignore the signal here.
-- In your real code, you'd probably want to keep the signal around as well.
let (field, _) = Input.textField $ "input " ++ (show n)
in helper (n-1) $ field : acc
in helper n []
¹ बस count
का उपयोग करके यह संकेत मिलेगा कि सिग्नल कितनी बार बदलता है। चूंकि प्रत्येक क्लिक सिग्नल के मान को सही में बदलने का कारण बनता है और फिर झूठ पर वापस आ जाता है, जो प्रति क्लिक 2 परिवर्तनों की गणना करेगा। countIf id
का उपयोग करके हम केवल सिग्नल सत्य होने की संख्या और इस प्रकार क्लिक की संख्या की गणना करते हैं।
एल्म 0.8 के रूप में, यह वास्तव में किया जा सकता है। the release announcement देखें, online reference और code example के अनुभाग समूह देखें।
- 1. आप गतिशील रूप से बैकबोन दृश्य तत्व कैसे बनाते हैं?
- 2. आप मूस में उपप्रकार कैसे बनाते हैं?
- 3. आप जावास्क्रिप्ट में कक्षाएं कैसे बनाते हैं?
- 4. आप जावा में शब्दकोश कैसे बनाते हैं?
- 5. आप पर्ल में ऑब्जेक्ट्स कैसे बनाते हैं?
- 6. आप जावा में जेपीईजी से थंबनेल छवि कैसे बनाते हैं?
- 7. आप एक छवि झपकी कैसे बनाते हैं?
- 8. आप डब्ल्यूसीएफ टेस्ट पेज कैसे बनाते हैं?
- 9. आप रेटिंग कार्यान्वयन कैसे बनाते हैं?
- 10. MySQL आप क्लस्टर्ड इंडेक्स कैसे बनाते हैं?
- 11. आप शेफ संसाधन वैकल्पिक कैसे बनाते हैं?
- 12. इनपुट इनपुट फ़ील्ड के अंदर, आप कुछ टेक्स्ट कैसे बनाते हैं, बोल्ड?
- 13. पायब्रेन: जमीन से नेटवर्क बनाते समय आप कैसे पूर्वाग्रह बनाते हैं?
- 14. आप कैलियर की प्रतिलिपि कैसे बनाते हैं?
- 15. आप एक असेंबलर कैसे बनाते हैं?
- 16. आप .NET से डिस्क पर डेटा कैसे बनाते हैं?
- 17. आप लिनक्स जीयूआई कैसे बनाते हैं?
- 18. आप UIBarButtonItem एनीमेशन फ्लिप कैसे बनाते हैं?
- 19. आप div "tabbable" कैसे बनाते हैं?
- 20. आप भाषा बाइंडिंग कैसे बनाते हैं?
- 21. आप सी में structs की एक सरणी कैसे बनाते हैं?
- 22. आप डोजो डेटा ग्रिड में सशर्त रूप से सेल कैसे बनाते हैं?
- 23. आप PHP में एक चर की स्पष्ट रूप से एक प्रति कैसे बनाते हैं?
- 24. आप पाइथन/पोस्टग्रेएसक्यूएल को तेज़ी से कैसे बनाते हैं?
- 25. आप कैसे मेलटू बनाते हैं: लिंक (से) भाग के बिना
- 26. आप कमांड लाइन से इंटेलिजे प्रोजेक्ट कैसे बनाते हैं?
- 27. आप अपाचे से मेल खाने वाले एटैग कैसे बनाते हैं?
- 28. आप PHP में एक आरईएसटी एपीआई कैसे बनाते हैं?
- 29. आप हास्केल में एक राज्यव्यापी मॉड्यूल कैसे बनाते हैं?
- 30. प्रबंधित कोड में आप Windows सुरक्षा वर्णनकर्ता कैसे बनाते हैं?
ध्यान दें कि एल्म सिग्नल के संकेतों का समर्थन नहीं करता है। यदि आप टेक्स्ट फ़ील्ड्स के इनपुट सिग्नल को स्टोर करना चाहते हैं, तो आप ऑटोमैटोन लाइब्रेरी का उपयोग कर सकते हैं: http://elm-lang.org/docs/Automaton.elm – thSoft