मैं बैकबोन सीखने की कोशिश कर रहा एक रेल डेवलपर हूं और फिर मैं इस समस्या में भाग गया: चूंकि Underscore
टेम्पलेट्स में <%=%>
जैसे प्रतीक शामिल हैं, मुझे लगता है कि टेम्पलेट्स को erb
फ़ाइलों में शामिल नहीं किया जा सकता है, तो क्या यह रेलवे आंशिक है हर एक टेम्पलेट? और यह क्या विस्तार होना चाहिए?रेलवे ढांचे में जहां मैं अपने बैकबोन टेम्पलेट्स रखना चाहिए?
उत्तर
आप खुलने वाला टैग में दो %
का उपयोग करके ERB प्रतीकों बच सकते हैं, और रेल विचारों में अपने रीढ़ टेम्पलेट्स डाल:
<script type='text/template' id="my-template'>
<%%= name %>
</script>
इच्छा उत्पादन अपने पृष्ठ में निम्नलिखित:
<script type='text/template' id="my-template'>
<%= name %>
</script>
अपने बैकबोन टेम्पलेट्स को सीधे अपने रेल विचारों में डालकर आईएमएचओ सबसे अच्छा विकल्प है जब आप सीखने की कोशिश कर रहे हैं। आप पहले से ही नई अवधारणाओं के साथ कुश्ती कर रहे हैं, कोई और बाधा जोड़ने की जरूरत नहीं है।
आपको अपने बैकबोन टेम्पलेट्स कहां रखना चाहिए? मैं कहीं नहीं कहूंगा। मेरा मानना है कि अधिकांश रेल अनुप्रयोगों में, सर्वर को HTML के सभी प्रतिपादन के लिए ज़िम्मेदार होना चाहिए, जबकि क्लाइंट-साइड जावास्क्रिप्ट को एचओएम में प्रस्तुत एचटीएमएल डालने के लिए ज़िम्मेदार होना चाहिए। अन्य चीजों के अलावा, यह I18n आसान बनाता है।
अपवाद तब होगा जब रेल का उपयोग केवल उस अनुप्रयोग के लिए हल्के बैकएंड के रूप में किया जा रहा है जो ज्यादातर क्लाइंट पक्ष पर चलता है (हालांकि उस स्थिति में, आप सिनात्रा या इसके बजाय कुछ उपयोग करना चाहेंगे)। इस मामले में, रेल को शायद कुछ भी प्रस्तुत करना चाहिए, और जेएस सभी प्रतिपादन करना चाहिए।
अंतर्निहित सिद्धांत पर ध्यान दें। या तो सभी प्रतिपादन के लिए सर्वर जिम्मेदार होना चाहिए, या ग्राहक को चाहिए। इसे विभाजित करने से जीवन कठिन हो जाएगा।
प्रतिपादन के छोटे टुकड़ों के बारे में क्या, टेबल पंक्तियों की तरह? –
वही जवाब। प्रतिपादन विभाजित मत करो। या क्या मैं आपके प्रश्न को गलत समझता हूं? –
शायद मैं जवाब को गलत समझ सकता हूं। खैर, 'Backbone.js' का उपयोग करने के लिए, मुझे कहीं और टेम्पलेट्स लिखना होगा। यह टेम्पलेट्स '<%= %>' टैग का उपयोग करते हैं और मेरा प्रश्न इस बात के बारे में था कि क्या रेल को क्लाइंट को इस टैग को प्रस्तुत करने का कोई तरीका है या क्या कोई प्रारूप है जिसका उपयोग मैं Backbone.js (Underscore.js) टेम्पलेट्स को अधिक आसानी से प्रस्तुत करने के लिए कर सकता हूं। –
रेल 3.1 से शुरू होने से, यह दो चीजें प्रदान करता है जो बैकबोन टेम्पलेट्स के साथ काम करना थोड़ा आसान बनाता है: संपत्ति पाइपलाइन, और स्वचालित जेएसटी (जावास्क्रिप्ट टेम्पलेट) संकलन।
app/assets
फ़ोल्डर में templates
नामक एक निर्देशिका बनाएं। यह निर्देशिका स्वचालित रूप से संपत्ति पाइपलाइन द्वारा उठाई जाएगी।
अगला, jst
के विस्तार के साथ उस निर्देशिका में फ़ाइलों का नाम दें और आप जिस टेम्पलेट को बना रहे हैं उसका प्रकार ejs
(एम्बेडेड जावास्क्रिप्ट)। आप उन्हें निर्देशिका में भी घोंसला कर सकते हैं। उदाहरण के लिए:
app/assets/templates/my_template.jst.ejs
app/assets/templates/bookmarks/show.jst.ejs
संपत्ति पाइप लाइन भी आप बस फाइल एक्सटेंशन बदलते (और किसी भी आवश्यक जवाहरात सहित) द्वारा एम्बेडेड coffeescript, मूँछ, हैंडल, आदि जैसे अन्य templating भाषाओं का उपयोग करने की अनुमति देता है।
अब आप अपने रीढ़ विचारों में अपने JST टेम्पलेट्स को संदर्भित करने के लिए, बस फ़ाइल नाम के लिए पथ का उपयोग करें:
var Bookmark = Backbone.View.extend({
template: JST['bookmarks/show'],
render: function() {
this.$el.html(this.template(this.model.attributes));
return this;
}
});
आप अपने application.js
को यह लाइन जोड़ने की जरूरत हो सकता है:
// require_tree ../templates
यहाँ एक है अच्छा लेख जो यह सब कुछ और विस्तार से समझाता है: http://www.bigjason.com/blog/precompiled-javascript-templates-rails-3-1
- 1. jQuery टेम्पलेट्स - मुझे उन्हें कहां रखना चाहिए?
- 2. मुझे अपने जुनीट परीक्षण कहां रखना चाहिए?
- 3. रेलवे आवेदन के भीतर मुझे अपना "मॉड्यूल" कहां रखना चाहिए?
- 4. रेलवे में HTML.haml बनाम हैमल टेम्पलेट्स देखें
- 5. एमएसपीसी, मुझे अपने [विषय()] विशेषताओं में क्या रखना चाहिए?
- 6. क्या मुझे अपने यूआरएल के अंत में .htm रखना चाहिए?
- 7. एचटीएमएल टेम्पलेट्स कहां रखना है?
- 8. बैकबोन-रूपों में कस्टम टेम्पलेट्स का उपयोग कैसे करें?
- 9. बैकबोन गतिशील रूप से टेम्पलेट्स स्विच करें
- 10. मैं कहाँ AppDelegate.m में removeObserver रखना चाहिए, ios
- 11. Requjs के साथ बैकबोन में precompiled हैंडलबार टेम्पलेट्स?
- 12. मैं अपने बारे में बॉक्स में क्या प्रदर्शित करना चाहिए?
- 13. मैं एक अर्द्धविराम रखना चाहिए (;) जब मैं onclick का उपयोग = ""
- 14. रेलवे
- 15. एमवीसी संरचना में जहां कोड जाना चाहिए
- 16. मुझे Grails ऐप में जावास्क्रिप्ट पुस्तकालय कहां रखना चाहिए?
- 17. मेरा win32 प्रोग्राम कहां रखना चाहिए?
- 18. मैं अपने आरएसएस फ़ीड में कितने परिणाम देना चाहिए?
- 19. जहां "शामिल" होना चाहिए C++
- 20. क्या मुझे अपने दक्षिण माइग्रेशन को संस्करण नियंत्रण में रखना चाहिए?
- 21. क्या मुझे अपने डेटा एक्सेस लेयर में एक स्क्लोनकनेक्शन जारी रखना चाहिए?
- 22. क्या मुझे एक पीओसीओ में सत्यापन तर्क रखना चाहिए?
- 23. मैं Jinja2 टेम्पलेट्स (ऐप इंजन पर बोतल ढांचे) में सत्र डेटा तक कैसे पहुंच सकता हूं?
- 24. MEF: मुझे कंपोज़िशनकंटर कहां रखना चाहिए?
- 25. रेलवे
- 26. मुझे अपने डेटामैटप्लेट को कहां परिभाषित करना चाहिए?
- 27. सी # क्या मुझे कनेक्शन पूलिंग में खुले कनेक्शन रखना चाहिए
- 28. रेलवे
- 29. Django OneToOneField - मुझे किस मॉडल में इसे रखना चाहिए?
- 30. क्या मुझे खराब नामकरण सम्मेलन रखना चाहिए?
ग्रेट टिप, मुझे यह नहीं पता था।दरअसल मैं जेएसटी का उपयोग करता हूं जो संपत्तियों के अंदर एक पेड़ में साफ रूप से संग्रहीत होता है – apneadiving
मैं अंडरस्कोर टेम्पलेट्स के लिए कस्टम रेगेक्स का उपयोग कर रहा था। दो '%' टिप के लिए धन्यवाद। – Agent47DarkSoul