2012-08-09 12 views
7

संभव डुप्लिकेट:
Mustache JS Template with JSON CollectionMustache.js: json के माध्यम से प्राप्त सूची पर दोहराएं

मैं इस है कि मैं Mustache.js साथ उपयोग करना चाहते हैं की तरह एक json प्रतिक्रिया:

[ 
    {"id": "1", "details": {"name": "X", "type":"Y" }}, 
    {"id": "2", "details": {"name": "aName", "type":"something" }} 
] 

mustache.js का उपयोग करके मैं इसे कैसे पुन: सक्रिय करूं?

+0

मुझे नहीं लगता कि यह एक डुप्लिकेट कैसा है। न तो लिंक किए गए प्रश्न का शीर्षक वर्णनात्मक है, न ही एक स्वीकार्य उत्तर है। – Stealth

+0

मजाकिया बात यह है कि यह पोस्ट "इस सवाल का एक डुप्लिकेट" है। – Carcigenicate

उत्तर

12

मैं इस जो सुंदर को छोड़कर आप Javascript वस्तु को सरणी आवंटित करने के लिए की जरूरत नहीं है कि गीर्ट-जन के समान है ऐसा करने का एक और रास्ता मिल गया।

{{ #. }} 
    <p> {{ id }} </p> 
    <ul> {{#details}} 
     {{name }} 
     {{ type }} 
    {{/details}} 
    </ul> 
{{ /. }} 
+0

हाँ। शीर्ष स्तर की वस्तु पर भी काम नहीं किया गया था। –

+0

मैं इसे कैन हज़ का उपयोग करके काम करने के लिए प्रतीत नहीं कर सकता। क्या मुझे कुछ याद आ रही है? – streetlight

+0

मुझे यह काम करने के लिए प्रतीत नहीं होता है (मैं उपयोग कर रहा हूँ मैं कर सकते हैं)। क्या मुझे कुछ याद आ रहा है, क्योंकि यह बहुत ही अच्छा होगा! – streetlight

14

सरणी ही इसलिए की तरह, एक बड़ी वस्तु में एक मूल्य होना चाहिए:

var obj = { 
    arr: [ 
    {"id": "1", "details": {"name": "X", "type":"Y" }}, 
    {"id": "2", "details": {"name": "aName", "type":"something" }} 
    ] 
} 

तो फिर तुम कर सकते हैं:

{{#arr}} 
    my id: {{id}} 
{{/arr}} 

के लिए {{#bla}} वास्तव में ओवरलोड हो गया है उपयोग । जब यह संपत्ति उस पर कार्य करती है वह एक सरणी है तो यह लूप होगा। जब संपत्ति एक वस्तु है तो वह उस वस्तु को 'दर्ज' कर देगी। अपने उदाहरण को देखते हुए:

{{#arr}} 
    my id: {{id}} <br/> 
    {{#details}} 
    and my name: {{name}} 
    {{/details}} 
{{/arr}} 
+2

आपके उत्तर के लिए धन्यवाद। मुझे ऐसा करने का एक और तरीका भी मिला जो आपको आसान भी मिल सकता है। कृपया नीचे देखे। – Stealth

+0

@ गीर्ट-जान धन्यवाद, इससे मेरी मदद मिली। मुझे यह करना था: '$ ('। कुछ # चयनकर्ता')। संलग्न करें (Mustache.render (someTemplateTpl, {arrayOfObjects: classObject.arrayOfJsons}));' कक्षा _classObject_ के अंदर _arrayOfJsons_ नाम की वस्तुओं की सरणी थी वस्तु के अंदर _arrayOfObjects_ संपत्ति के मूल्य के रूप में असाइन किया जाना चाहिए। लेकिन इससे पहले, जब मैंने इस कोड का उपयोग किया: '$ ('। कुछ # चयनकर्ता')। संलग्न करें (Mustache.render (someTemplateTpl, classObject.arrayOfJsons));' यह काम नहीं किया, टेम्पलेट आंशिक रूप से प्रस्तुत किया गया है - केवल स्थिर एचटीएमएल भागों, लेकिन जेसन की संपत्तियों (यानी अगर-जैसे बयानों की तरह) पर आधारित गतिशील लोग नहीं थे। क्यूं कर? वास्तव में – spaffy

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