2011-07-30 8 views
7

पर लूपिंग मैं जेड/अंडरस्कोर के साथ रीढ़ की हड्डी का उपयोग करके टेम्पलेटिंग के बारे में थोड़ा उलझन में हूं।बैकबोन.जेएस जेड और मॉडल

मेरे पास इसमें दो एरे के साथ रीढ़ की हड्डी मॉडल है और मुझे यकीन नहीं है कि सरणी विशेषताओं को कैसे प्रस्तुत किया जाए। मैं उन्हें एक अलग रीढ़ की हड्डी संग्रह & दृश्य में स्थानांतरित कर सकता हूं लेकिन यह इस मामले में ओवरकिल जैसा प्रतीत होता है।

मैं this blog post on using backbone with jade पीछा किया और कहा कि मेरी रीढ़ की हड्डी फ़ाइल

_.templateSettings = { 
     interpolate : /\{\{(.+?)\}\}/g 
    }; 

जो मुझे मॉडल इस मनोर में जिम्मेदार बताते हैं रेंडर करने के लिए अनुमति देता है के लिए निम्न:

 //in my JavaScript 
     this.template = _.template($("#some-template").html()); 

     //in my .jade template 
     input.text(type='text', name="name", value='{{name}}') 

क्या मैं बाहर काम करना चाहता हूँ कैसे करने के लिए है मॉडल में एक सरणी में से एक पर एक सरल पाश करो। जैसे

- for (var child in children) 
     {{child}} 

लेकिन काफी सही सिंटैक्स, जहां जेड शुरू होता है के बारे में उलझन im और रेखांकित कार्यभार संभाला आदि धन्यवाद।

उत्तर

5

आप ब्राउजर में जेड का उपयोग नहीं कर सकते (ठीक है आप शायद तकनीकी रूप से कर सकते हैं लेकिन अंडरस्कोर के विपरीत रीढ़ की हड्डी के साथ उपयोग करना आम नहीं है)। आप वहां अंडरस्कोर टेम्पलेट्स का उपयोग करेंगे। The docs on _.template दिखाता है कि आप जावास्क्रिप्ट का मूल्यांकन कर सकते हैं और _.each विधि का उपयोग अपने मॉडल के सरणी विशेषताओं पर लूप करने के लिए कर सकते हैं।

यह आपके दृश्य के render फ़ंक्शन के अंदर ऐसा दिखाई देगा। आप टेम्पलेट फ़ंक्शन को दक्षता के लिए अपने दृश्य की विशेषता के रूप में कैश करना चाहते हैं, लेकिन मेरे पास सादगी के लिए यहां इनलाइन है। उदाहरण के लिए मान लें कि आपके पास Car मॉडल है जो drivers की सूची के साथ ड्राइवर नामों की एक सरणी है।

var template = "<% _.each(model.drivers, function(name) { %> <li><%= name %></li> <% }); %>"; 
return _.template(template, this); 

ध्यान दें कि आप अपने टेम्पलेट सेटिंग में एक evaluate वाक्य रचना प्रदान करने के लिए के रूप में इस उदाहरण दोनों लगाना शैली (<%=) और मूल्यांकन शैली (<%) टेम्पलेट मार्कअप के शामिल की आवश्यकता होगी। वर्तमान में आपके पास मूंछ शैली इंटरपोलेशन है और यह पर्याप्त नहीं है।

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

  • कोई संबंधित समस्या नहीं^_^