2016-02-06 10 views
5

मैं एक घटना पर अलग-अलग पते पर दो संदेश भेजना चाहता हूं।क्या एएमएम-एचटीएमएल का उपयोग कर एक कार्यक्रम पर एकाधिक संदेश भेजना संभव है?

  • पॉपअप बंद
  • सूचित माता पिता घटक है कि आइटम होना चाहिए (संदेश घटक पॉपअप को भेज): विशेष मामले मैं का सामना करना पड़ा है कि मैं एक कुछ पॉपअप था और जब उपयोगकर्ता क्लिक करता है "जोड़ें" मैं चाहते हैं था जोड़ा गया (संदेश मूल घटक को भेजें)

ऑनक्लिक के पास निम्न प्रकार का पता है "पता ए -> ए -> विशेषता" कुछ ऐसा करने की कोई संभावना नहीं है। दूसरी ओर ऐसा लगता है कि इस तरह के पैटर्न (एक क्रिया जिसके परिणामस्वरूप एकाधिक संदेश) अक्सर अभ्यास में मिलेगा।

अभी के लिए मैंने एक संदेश भेजने के बारे में माता-पिता को सूचित करने के लिए एक संदेश भेजना शुरू किया और उसके बाद अपडेट फंक्शन अपडेट में माता-पिता छुपाएं कार्रवाई के साथ पॉपअप अपडेट किया।

addButton = button [onClick context.addTaskAddress model.taskDescription] [text "Add"] 

और उसके बाद माता-पिता के घटक अद्यतन समारोह में

popup = AddTaskPopup.update AddTaskPopup.Hide model.popup 

उत्तर

3

आप एक मध्यवर्ती प्रॉक्सी मेलबॉक्स कि पता और संदेश जोड़ों की सूची लेता सेट कर सकते हैं, तो बटन क्लिक से कि कहते हैं।

proxy : Mailbox (List (Address a, a)) 
proxy = 
    mailbox [] 

तो फिर तुम एक प्रसारण संकेत जो प्रॉक्सी मेलबॉक्स को सुनता है और अन्य पते को सूचित करने के Signal.send कार्यों का एक समूह बनाता है हो सकता था।

port broadcast : Signal (Task x (List())) 
port broadcast = 
    let 
    tasks = List.map (uncurry Signal.send) 
    in 
    Signal.map (Task.sequence << tasks) proxy.signal 

आपका onClick कोड तो कुछ इस तरह है, जहां आप पता और कार्रवाई जोड़े की सूची में पारित दिखेगा:

onClick proxy.address [(address, Action1), (address, Action2)] 

ध्यान दें कि उपरोक्त कोड में, address में आ रहा है पता करने के लिए संदर्भित करता है व्यू फ़ंक्शन, जबकि proxy.address उस प्रॉक्सी मेलबॉक्स को संदर्भित करता है जिसे हमने अभी सेट अप किया है।

यह एक सामान्य उद्देश्य समाधान है जो किसी भी संकेत के लिए काम करेगा।

संबंधित मुद्दे