2010-05-28 21 views
6

का उपयोग करके आंशिक टेम्पलेट्स प्रस्तुत करना आंशिक टेम्पलेट्स को गतिशील रूप से इंजेक्ट करने का कोई तरीका है (और यह रूबी & जावास्क्रिप्ट दोनों में समान तरीके से काम करता है)? असल में, मैं एक सूची में विभिन्न प्रकार की वस्तुओं को प्रस्तुत करने की कोशिश कर रहा हूं।गतिशील रूप से मूंछ

सबसे अच्छा मैं के साथ आ सकते हैं

यह है:

<div class="items"> 
{{#items}} 
<div class="item"> 
    {{#is_message}} 
    {{> message}} 
    {{/is_message}} 

    {{#is_picture}} 
    {{> picture}} 
    {{/is_picture}} 
</div> 
{{/items}} 
</div> 

मैं इस दृष्टिकोण के बारे में सुपर मानसिक नहीं हूँ। क्या कोई बेहतर तरीका है?

यह भी ध्यान रखें कि विचारों के लिए विभिन्न प्रकार के मॉडल गैर-समान फ़ील्ड हो सकते हैं। मुझे लगता है कि मैं हमेशा सबसे कम आम denominator पर जा सकता है और डेटा हैश एचटीएमएल है, हालांकि मैं मूंछ टेम्पलेट का उपयोग करेंगे।

+1

क्या आपको कभी समाधान मिला? मैं तर्कसंगत विधियों में से एक के अंदर 'Mustache.render' को कॉल करने और परिणाम लौटने के बारे में सोच रहा हूं। – Jeremy

+0

हां, यही वह है जो मैंने करना शुरू किया। एक टेम्पलेट प्रस्तुत करें और इसे चर में इंजेक्ट करें। –

उत्तर

1

मैं एक ही बात आप किया था और प्रत्येक प्रॉपर्टी प्रकार के लिए मैं js डाटा मॉडल, जो टेम्प्लेट में गाया जा रहा है में एक गतिशील एक गतिशील चर आंशिक, मैं सिर्फ सेट ... जरूरत

eval("this.set({is_" + this.get("propertyType") + ": true})") 

या

this["is_" + propertyType] = true 

कम से कम मैं मैन्युअल रूप से 'is_whatever' चर सेट करने के लिए नहीं है ...

यह शांत हो सकता है अगर mustache.js या ICanHaz.js डीवाई के लिए कुछ चालाक वाक्य रचना की थी मूंछ टैग के अंदर नामिक गुण ... शायद कुछ ऐसा:

{{>{{message}} }} 
संबंधित मुद्दे