2012-04-03 14 views
10

में दोहरे उद्धरण चिह्नों से बचने अगर मैं इस तरह मेरी स्काला कोड में कुछ जावास्क्रिप्ट उत्पन्न:रोकें स्काला से XML अनावश्यक रूप से

<script type="text/javascript"> 
    foo("{bar}"); 
</script> 

और जावास्क्रिप्ट (उदाहरण की तरह) एक दोहरे उद्धरण वर्ण है, यह रूप में दिखाई देगा &quot; जब एक्सएमएल को स्ट्रिंग में परिवर्तित किया जाता है, और फ़ायरफ़ॉक्स इस जावास्क्रिप्ट को सिंटैक्स त्रुटि के रूप में अस्वीकार कर देगा।

&quot; एस को हटाए बिना को वास्तव में आवश्यक है, तो मैं इस जावास्क्रिप्ट त्रुटि से कैसे बच सकता हूं?

मैं स्कैला मॉड्यूल 0.9.1 के साथ प्ले फ्रेमवर्क 1.2.4 का उपयोग कर रहा हूं, जिसके लिए स्कैला 2.8.1 की आवश्यकता है।

+0

मुझे स्कैला नहीं पता लेकिन स्क्रिप्ट सामग्री को सीडीएटीए ब्लॉक सहायता में डालेगा? – Pointy

+0

@ पॉइंटी नहीं, दुर्भाग्यवश इससे कोई फर्क नहीं पड़ता। –

+1

देखें [यह टिकट] (https://issues.scala-lang.org/browse/SI-3368)। –

उत्तर

15

कुछ आपके लिए यह काम पसंद करेगा?

scala> val bar=scala.xml.Unparsed(""""hello"""") 
bar: scala.xml.Unparsed = "hello" 

scala> val x = <script type="text/javascript">foo({bar});</script> 
x: scala.xml.Elem = <script type="text/javascript">foo("hello");</script> 
+0

यह मुझे बुरा स्ट्रिंग बिल्डिंग से बचाया। धन्यवाद! –

0

आप एक प्ले टेम्पलेट से यह कॉल कर रहे हैं, तो आप $ करने के लिए सक्षम होना चाहिए {myscript.raw()} बल्कि सिर्फ $ {myscript} से। # {Verbatim /} टैग भी काम करना चाहिए।

+0

मुझे डर है कि स्काला मॉड्यूल एक अलग, स्कैला-आधारित टेम्पलेटिंग भाषा का उपयोग करता है - जिसका मैं उपयोग कर रहा हूं - इसलिए मैं इस उत्तर का उपयोग नहीं कर सकता। –

+0

आह, मेरा बुरा! बमर कि इसमें जेएस के लिए कुछ प्रकार की कच्ची कार्यक्षमता शामिल नहीं है। –

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