"एमयू बहुत छोटी है" सलाह के साथ। और कुछ पागल विचार मैं जटिल templating के लिए एक दिलचस्प दृष्टिकोण के साथ आया था। * यह लगभग काम करता है!
<script type="text/template" id="template">
<h1>{{title}}</h1>
<h3>{{calc}}</h3>
<ul>
<li><a href="{{digits}}">{{hair}}</a></li>
</ul>
</script>
और:
var content = {
title: "Black Book",
girls: ["blonde", "brunette", "redhead"],
digits: ['123', '456', '789'],
calc: function() {
return 2 + 4;
}
};
और मैं इस तरह एक टेम्पलेट है:
तो चलो कहते हैं कि मैं इस सामग्री है (या डेटा या दृश्य) जो मैं एक टेम्पलेट में डाल करना चाहते हैं अंतिम परिणाम मैं चाहता हूँ यह है:
<h1>Black Book</h1>
<h3>6</h3>
<ul>
<li><a href="123">blonde</a></li>
<li><a href="456">brunette</a></li>
<li><a href="789">redhead</a></li>
</ul>
समस्या हम सामना करना पड़ेगा हम सरणियों (या सूचियों) में नेस्ट है वह यह है कि हमारे मूल सामग्री, और हम Mustache.render करने की कोशिश की है, तो (एचटीएमएल, सामग्री) हम केवल एक ली आइटम या एक href के भीतर एक पूरी सरणी = "" विशेषता के साथ पहुंचते हैं। बहुत दुखी ...
तो वह दृष्टिकोण है, कई बार टेम्पलेट से गुजरता है। पहली बार, के माध्यम से पारित और शीर्ष स्तर के आइटम की जगह है, और के माध्यम से पारित करने के लिए अगले टेम्पलेट समायोजित। दूसरी बार, सूची में से एक को समायोजित, और के माध्यम से तीसरे पास, आदि आप सामग्री के कैसे कभी कई परतों के लिए के लिए टेम्पलेट समायोजित। के माध्यम से शीर्ष स्तर सामान में भरने
<script type="text/template" id="template">
<h1>{{title}}</h1>
<h3>{{calc}}</h3>
<ul>
{{#hair}}
{{#digits}}
<li><a href="{{digits}}">{{hair}}</a></li>
{{/digits}}
{{/hair}}
</ul>
</script>
पहले पारित पर, और परिवर्तन {{अंक}} को {{: यहाँ नया प्रारंभिक टेम्पलेट है।अगले दर्रे से हम सिर्फ Mustache.render (template2, content.digits) फोन करता हूँ पर
<h1>Black Book</h1>
<h3>6</h3>
<ul>
{{#hair}}
{{#digits}}
<li><a href="{{.}}">{{hair}}</a></li>
{{/digits}}
{{/hair}}
</ul>
;:}}
$.each(content, function (index, value) {
template2 = template.replace(/{{title}}/ig, content.title)
.replace(/{{calc}}/ig, content.calc)
.replace(/{{digits}}/ig, '{{.}}');
});
अब आप इस राशि और हमें यह देना चाहिए:
<h1>Black Book</h1>
<h3>6</h3>
<ul>
{{#hair}}
<li><a href="123">{{hair}}</a></li>
<li><a href="456">{{hair}}</a></li>
<li><a href="789">{{hair}}</a></li>
{{/hair}}
</ul>
और यही वह जगह है जहां मेरा तर्क मर जाता है, हाहा। इस बारे में सोचने में कोई मदद चट्टान होगी! मुझे लगता है कि मैं {{hair}} ब्लॉक तत्वों को निकाल सकता हूं और सिर्फ $ .each pass content.girls और stack के माध्यम से पास कर सकता हूं। तीन बार बदलें। या मैं निम्नतम सामग्री के साथ शुरू करने की कोशिश कर सकता हूं, और अपना रास्ता तैयार कर सकता हूं। मुझे नही पता।
यह सब मूल रूप से मुझे आश्चर्यचकित करता है कि इस प्रकार के घोंसले के लिए कुछ "तर्क-रहित" तरीका है या मूंछ में डालने के लिए एकाधिक पास के माध्यम से हैंडलबार्स ऐसा करते हैं?
यह सहायक है! प्रत्येक उदाहरण जो मैं नेटट्स या किसी भी जगह पर टेम्पलेटिंग का प्रदर्शन करता हूं, एक चीज के माध्यम से पुनरावृत्ति करता है। एकमात्र अन्य समाधान जो मैं सोच सकता था, लेकिन अच्छी तरह से लागू नहीं किया जा सका एक दूसरा टेम्पलेट घोंसला था। – Costa
कुछ डेटा को पुन: व्यवस्थित करने के लिए यार सलाह ली, लेकिन मैंने कुछ और करने की कोशिश की। मैंने टेम्पलेट के माध्यम से कई बार पुनरावृत्त किया, कुछ चीजों को पहली बार दूसरी बार दूसरी चीजों को बदल दिया। यह एक अच्छी रणनीति प्रतीत होता था। अगर कोई दिलचस्पी लेता है तो मुझे बताएं कि मैं इसे पोस्ट करूंगा। – Costa
@ कोस्टा: आप अपने प्रश्नों का उत्तर दे सकते हैं और मैं इसके बारे में उत्सुक हूं कि आप किसके साथ आए थे। –