2011-10-19 14 views
7

मैं यह पता लगाने की कोशिश कर रहा हूं कि अल्फ्रेस्को शेयर के साथ कुछ अंतर डैशलेट संचार कैसे करें। यहां एक साधारण उपयोग केस:क्या अल्फ्रेस्को शेयर इंटर डैशलेट संचार के लिए कोई मेकनवाद प्रदान करता है?

हमारे पास 2 डैशलेट हैं, चलिए उन्हें ए और बी कहते हैं। मैं ए में एक नाम "नाम" भरने में सक्षम होना चाहता हूं (मान लें "टोटो" के साथ) और क्लिक करें सबमिट बटन पर। ए बी में सबमिट बटन पर क्लिक करने के बाद "गुड मॉर्निंग टोटो" जैसे ग्रीटिंग के साथ अपडेट किया जाना चाहिए।

आपके उत्तर के लिए धन्यवाद।

आपके उत्तर के लिए धन्यवाद। क्या आप "dashlet_b.get.html.ftl को dashlet_a.post.html.ftl पर कुछ पोस्ट करने दें" के बारे में कुछ बता सकते हैं? सही dashlet_b.post.js के लिए वाला नज़र

<form id="..." action="" method="POST"> 
    <input id="name" type="text" name="name" value=""/> 
    <input type="submit" id="send" value="Send" /></form> 

जब आप प्रपत्र सबमिट यह है:

dashlet_b.get.html.ftl में आप कि मुझे लगता है कि जैसे कुछ है? आप वास्तव में dashlet_a.post.js को फ़ॉर्म भेजने के लिए कैसे कहते हैं?

+0

क्या आप अभी भी एक और जवाब ढूंढ रहे हैं? लक्ष्य वेबस्क्रिप्ट के लिए अपने अद्यतन प्रश्न का उत्तर देने के लिए:

लेकिन यह केवल सर्वर पर डेटा पोस्ट करेगा और आपको ब्राउज़र में डैशलेट ए अपडेट नहीं करेगा। – Florian

उत्तर

0

मुझे लगता है कि यह काफी आसान है।

प्रत्येक डैशलेट वास्तव में एक वेबस्क्रिप्ट है। तो आप अलग-अलग उपयोग के लिए एकाधिक वेबस्क्रिप्ट प्राप्त कर सकते हैं। जैसे मुझे डैशलेट_ए मिला है। .html.ftl और dashlet_a प्राप्त करें। पोस्ट .html.ftl। वास्तव में ये दोनों एक ही वेबस्क्रिप्ट हैं, एक सिर्फ एक पोस्ट पर काम करता है और दूसरा मिलता है।

तो आप क्या कर सकते हैं, dashlet_b दें। प्राप्त करें .html.ftl कुछ को dashlet_a.post.html.ftl पर पोस्ट करें। इसलिए आप बी से ए के मूल्य (मूल्य) जमा कर रहे हैं।

अगला चरण डैशलेट_ए को रीफ्रेश करना है, एक तरीका एक पूर्ण पृष्ठ रीफ्रेश करना है, लेकिन यह अच्छा नहीं है। बेहतर क्या है निम्नलिखित: dashlet_a में। पोस्ट .html.ftl आप बस YUI/JQuery के माध्यम से फ़ील्ड के मान को सेट करते हैं जिसे dashlet_a में परिभाषित किया गया है। .html.ftl प्राप्त करें।

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

7

इन गतिशील डैशलेट बनाने के लिए सर्वर साइड डैशलेट वेबस्क्रिप्ट का उपयोग करने के लिए पर्याप्त नहीं है। परिवर्तनों के अन्य डैशलेट को सूचित करने के लिए आपको ब्राउज़र में जावास्क्रिप्ट तर्क की आवश्यकता है।

ब्राउज़र जावास्क्रिप्ट Dashlet एक::

YAHOO.Bubbling.fire("interDashletMessage", 
{ 
    message: "Hello World." 
}); 

ब्राउज़र जावास्क्रिप्ट Dashlet बी:

YAHOO.Bubbling.on("interDashletMessage", function(layer, args) { 
    var message = args[1].message; 
    alert(message); // or write it to the dashlets HTML content 
}); 

यह संदेश dashlet एक से भेजे जाने वाले एक कस्टम का उपयोग कर बी dashlet को होगा यह कैसे Alfresco आमतौर पर है कि है घटना "interDashletMessage" कहा जाता है।

यदि आपका डैशलेट बी केवल कुछ संदेश प्रदर्शित करता है तो यह घटनाओं का उपयोग करके डेटा भेजने के लिए पर्याप्त हो सकता है। यदि यह अधिक जटिल है तो आपके डैशलेट ए को पहले डेटा को रिपोजिटरी में पोस्ट करने की आवश्यकता है, फिर "रीफ्रेश करें" ईवेंट ट्रिगर करें और डैशलेट बी को रिपोजिटरी से इसकी सामग्री रीफ्रेश करें। इसमें कई वेबस्क्रिप्ट शामिल होंगे जिन्हें आपको लिखने की आवश्यकता हो सकती है।

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