2016-02-29 5 views
7

हमारे आवेदन के लिए हमें नई सुविधा template string का उपयोग करने की आवश्यकता है।एचटीएमएल 5, ईएस 6 टेम्पलेट स्ट्रिंग पॉलीफिल

var verLongKey= `834r845784576485 
y84ery5845y485yu843 
483y53485684576845 
jhu87843647356756745==457485,mh 
ererthe8t0998785==ery8`; 

लेकिन पुराने ब्राउज़र (एंड्रॉयड ने डिफ़ॉल्ट ब्राउज़र की तरह) टेम्पलेट स्ट्रिंग समर्थन नहीं करते।

मैं इस सुविधा के लिए पॉलीफिल कैसे प्राप्त कर सकता हूं? babel का प्रयास किया। हमें यह पॉलीफिल सभी सुविधाओं के लिए काम कर रहा है लेकिन template string। वर्तमान में modernizr का उपयोग करके समर्थन का पता लगाने और अन्य ब्राउज़र का उपयोग करने के लिए अलर्ट दिखाएं। यह दृष्टिकोण उपयोगकर्ताओं के लिए परेशान है। इस काम को गैर-सहायक ब्राउज़रों पर बनाने के लिए मैं कुछ पॉलीफिल कैसे प्राप्त कर सकता हूं?

हमें यह template strings क्या बनाया। समस्या यह है कि मैं इन उपकरणों का उपयोग नहीं कर सकता (trceur, babel) क्योंकि यह फ़ाइल puppet से उत्पादन पर उत्पन्न होती है। वहां कोई रास्ता नहीं है कि हम वहां इन ट्रांसपिलरों को चलाएंगे। ब्राउज़र पक्ष पर कुछ पॉलीफिल जोड़ना चाहते हैं। कुंजी में कुछ \n वर्ण हैं, जिनमें उन्हें संरक्षित करने की आवश्यकता है। मुझे कुछ पॉलीफिल चाहिए, इसलिए मैं configs js फ़ाइल से पहले शामिल कर सकता हूं।

+4

आपको टेम्पलेट तारों की "आवश्यकता" क्या है? आप उनके बिना सबकुछ आसानी से कर सकते हैं, आपको पता है ... –

+0

@MadaraUchiha सहमत हैं, वही परिणाम ES5 के साथ प्राप्त किया जा सकता है: http://stackoverflow.com/a/35695834/1092711 – Pavlo

+1

@MadaraUchiha बहुत सारे बैकपोर्ट कोड जो टेम्पलेट स्ट्रिंग का व्यापक रूप से उपयोग करता है * मजेदार नहीं है, क्योंकि टेम्पलेट्स का उपयोग स्ट्रिंग्स (जावास्क्रिप्ट, एसक्यूएल, इत्यादि) में एम्बेडेड गतिशील रूप से टेम्पलेट कोड को वास्तव में पठनीय और रखरखाव करने की अनुमति देता है। – Michael

उत्तर

5

3 मुख्य ईएस 6 पॉलीफिल हैं जो आपको टेम्पलेट स्ट्रिंग समर्थन दे सकते हैं लेकिन उनमें से कोई भी पूर्ण समर्थन नहीं है क्योंकि आप kangax's ECMAScript support table पर देख सकते हैं।

  • Traceur - यह गूगल के ECMAScript polyfill कि कुछ ECMAScript 6 और ECMAScript अगले सुविधाओं का समर्थन है, यह टेम्पलेट स्ट्रिंग्स के लिए 4/5 समर्थन है, वहाँ कोई toString रूपांतरण है।

  • बेबेल - एक और ईसीएमएस्क्रिप्ट पॉलीफिल, सामान्य रूप से अधिक समर्थन है, लेकिन टेम्पलेट तारों के लिए केवल 4/5 समर्थन भी है, कोई भी स्ट्रिंग रूपांतरण नहीं है।

  • es6-shim - मुझे यकीन नहीं है कि यह अब भी विकसित हुआ है, लेकिन इसमें टेम्पलेट स्ट्रिंग्स वैसे भी नहीं हैं।

लेकिन आप और चर जोड़ने के लिए साथ + स्ट्रिंग के लिए टेम्पलेट स्ट्रिंग का उपयोग, यह सिर्फ एक वाक्यात्मक चीनी \ बहु लाइनों के लिए पहले दो बार सोचने के लिए चाहते हो सकता है।

+0

समस्या यह है कि मैं इन उपकरणों का उपयोग नहीं कर सकता क्योंकि यह फ़ाइल है 'कठपुतली' से उत्पादन पर उत्पन्न हुआ। वहां कोई रास्ता नहीं है कि हम वहां इन ट्रांसपिलरों को चलाएंगे। ब्राउज़र पक्ष पर कुछ पॉलीफिल जोड़ना चाहते हैं। कुंजी में कुछ '\ n' वर्ण हैं जिन्हें संरक्षित करने की आवश्यकता है। मुझे कुछ पॉलीफिल चाहिए, इसलिए मैं configs js फ़ाइल से पहले शामिल कर सकता हूं। – lokeshjain2008

+0

मुझे पता है कि यह वाक्य रचनात्मक चीनी है। लेकिन यूनिक्स को फ़ाइल पढ़ने के तरीके और 'pupper' कुंजी को प्रतिस्थापित करने के लिए, \ n' वर्णों को संरक्षित करने के लिए किसी भी तरह की आवश्यकता होती है। 'टेम्पलेट स्ट्रिंग' समाधान था। – lokeshjain2008

+8

ट्रेसेर और बेबेल * ट्रांजिस्टर * हैं, पॉलीफिल नहीं। उन्हें क्लाइंटसाइड चलाना संभव हो सकता है लेकिन इसकी अनुशंसा नहीं की जाती है। – Bergi

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