2012-04-02 14 views
5

इस हैशकैसे mustache.js

a = { 
    foo : { ... }, 
    bar : { ... }, 
    zap : { ... } 
} 

मैं इस पर पुनरावृति करना चाहते हैं को देखते हुए में एक हैश से अधिक तेज़ी से दोहराने में लेकिन जब से चाबियाँ अलग हैं मैं कैसे Mustache.js में करने के लिए यकीन नहीं है

उत्पादन इस foo कुछ ऐसी दिखाई देगी: (सामग्री यहाँ)

+0

क्या आप इसे थोड़ा सा विस्तार दे सकते हैं? क्या आप 'foo',' bar' और 'zap' या कुंजी के तत्वों को फिर से सक्रिय करना चाहते हैं? – ZeissS

+0

@ZeissS संपादित * – samccone

उत्तर

4

आप नेस्टेड उद्देश्य यह है कि आप पुनः प्राप्त करने के लिए, आप एक समारोह का उपयोग कर सकते कोशिश कर रहे हैं में महत्वपूर्ण पता है।

देखें: http://jsfiddle.net/jimschubert/zPWDJ/

js:

$(function() { 
    var names = { 
     "a": [ 
      {"foo": { "name": "foo name"}}, 
      {"bar": { "name": "bar name"}}, 
      {"zap": { "name": "zap name"}} 
     ], 
     "n": function() { 
      var self = this; 
      var n = ""; 
      Object.keys(self).forEach(function(k, v) { 
       if (typeof self[k] == "object") { 
        if(!n) n = self[k]["name"]; 
       } 
      }); 
      return n; 
     } 
    }; 

    var template = $('#template').html(); 
    var out = $('#output'); 
    var html = Mustache.to_html(template, names); 
    console.log(html); 
    out.html(html); 
});​ 

एचटीएमएल:

<script id="template" class="template" type="text/x-mustache"> 
{{#a}} 
<p>{{n}}</p> 
{{/a}} 
</script> 

<h1>Output</h1> 
<div id="output"> 
</div> 
​ 

निश्चित रूप से इसका मतलब यह है अपने डेटा ऑब्जेक्ट की श्रृंखला है (अपनी पोस्ट में a एक महत्वपूर्ण होगा अधिक सरणी का हो सकता है, हो सकता है?) यदि आपके पास कोई सरणी नहीं है, तो मुझे नहीं लगता कि आप किसी ऑब्जेक्ट के लिए इसे समायोजित क्यों नहीं कर पाएंगे और व्हाए के लिए गेटर फ़ंक्शन नहीं कर पाएंगे आप जिस कुंजी की तलाश कर रहे हैं उसके टेवर गुण।

+1

हाँ यह काम करेगा .. बस एक हेश के मूल्य प्राप्त करने के लिए काम की बहुत सारी लगती है, बस दृश्य में इसे फिर से करने के बजाय – samccone

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