2011-07-13 14 views
6

पर मानों को पारित करने का सुरुचिपूर्ण तरीका क्या किसी के पास playframework में जावास्क्रिप्ट (जो इनलाइन नहीं है) सर्वर सर्वर को पास करने का एक शानदार समाधान है? सिर्फ $ {x} या & { 'एक्स'} एचटीएमएल अंदर की तरहPlayframework: जावास्क्रिप्ट

वर्तमान में मैं

<script type="text/javascript"> 
    var x= ${x}; 
    </script> 
    <script src="/public/javascripts/jsThatUsesX.js" type="text/javascript" ></script> 

मैं सोच रहा हूँ वहाँ खेलने से एक बेहतर समाधान है के बारे में सोच सकते हैं

उत्तर

2

यह बहुत नहीं है, लेकिन इस तरह से मैं हमेशा यह कर अंत है।

यदि आप जावास्क्रिप्ट को पास कर रहे मानों को DOM में कुछ बताते हैं, तो आप HTML में उस जानकारी को रखने के लिए HTML 5 डेटा विशेषताओं का उपयोग करने पर विचार कर सकते हैं। फिर आप इसे getAttribute से पुनर्प्राप्त कर सकते हैं। जैसे अपने पृष्ठ एक ब्लॉग पोस्ट है और आप पोस्ट आईडी स्टोर करने के लिए की जरूरत है आप इस तरह डेटा तर्क से बाहर अलग किया जाता है इस्तेमाल कर सकते हैं

<div class="post" data-post-id="77"> 
    ... 
</div> 

और आप किसी भी जावास्क्रिप्ट इनलाइन की जरूरत नहीं है। आप एक छिपे हुए फॉर्म फ़ील्ड का भी उपयोग कर सकते हैं।

2

क्या उस के साथ गलत क्या है ? मैं अपने आप को

<script> 
    var trades = [${_trades.collect {models.Trade t -> t.price}.join(", ")}]; 
    // ... 
</script> 

तरह बातें कर पाया मैं इसे ग्रूवी तरीका पसंद;)

+0

आंद्रे, इसके साथ कुछ भी गलत नहीं :-)। मुझे ग्रोवी पसंद है। मैं सीधे ऑब्जेक्ट्स को सीधे जावास्क्रिप्ट पर पास करने की क्षमता चाहता हूं (और इनलाइनिंग से परहेज करना) – roshan

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