2015-07-02 12 views
9

में लिंक के साथ मल्टी स्तर सूची मैं क्षेत्रों groupNumber और number साथ एक संग्रह है:उल्का

groupNumber, number 
================= 
1, 1 
1, 2 
1, 3 
1, 4 
2, 1 
2, 2 
2, 3 
2, 8 
3, 4 
3, 5 
... 

मैं

{{#each numbers}} 
    <tr> 
    <td>{{groupNumber}}</td> 
    <td>{{number}}</td> 
    </tr> 
{{/each}} 

साथ पूरे संग्रह मुद्रित कर सकते हैं लेकिन मैं इसे बजाय लिंक करने की आवश्यकता है। तो पहले पृष्ठ पर मुझे समूह संख्याओं (1, 2, 3, ...) की एक सूची देखने की आवश्यकता है और जब मैंने समूह में से किसी एक पर क्लिक किया है, तो मुझे इस समूह से संबंधित संख्याएं दिखाई देती हैं।

मैं आसानी से इस अगर मैं था दो अलग संग्रह में groupNumber और number विभाजन को प्राप्त करने और समूहों की सूची और समूह से संबंधित नंबर की सूची के बीच नेविगेट करने iron-router इस्तेमाल कर सकते हैं। लेकिन मैं इसे एक ही संग्रह में दो क्षेत्रों के साथ कैसे प्राप्त कर सकता हूं?

उत्तर

5

आप अपने समूहों को मैन्युअल रूप से "समूह" क्यों नहीं करते?

पहले अपने सभी समूह संख्याएं प्राप्त करें।

var allValues = YourCollection.find().fetch(); 
var uniqueGroups = _.union(_.pluck(allValues, 'groupNumber')) //outputs [1,2,3] 

उसके बाद, सरल मार्ग काम करेगा: your_template जाँच में

Router.route('/group/:groupNumber?', function() { 
    this.render('your_template', { 
    data: function() { 
     if(this.params.hasOwnProperty('groupNumber')){ 
      return { 
      groupNumber: this.params.groupNumber 
      } 
     } else { 
      var allValues = YourCollection.find().fetch(); 
      var uniqueGroups = _.union(_.pluck(allValues, 'groupNumber')) 
      return { 
       groups: uniqueGroups 
      } 
     } 
    } 
    }); 
}); 

तब, यदि आप groupNumber है, द्वारा YourCollection.find({groupNumber: this.groupNumber})

सभी नंबरों दिखाई देते हैं यदि नहीं, तो बस प्रस्तुत करना this.groups:

{{#each groups}} 
<a href="/group/{{this}}">{{this}}</a> 
{{/each}} 
+0

यदि मेरे पास दो और स्तर हैं तो ' समूह 1', 'group2', 'group3', और' group4'? – Jamgreen

+0

आप वास्तव में मार्गों का उपयोग करने के बजाय एक यूएक्स प्रतिमान पूछ रहे हैं। –

+1

वही तर्क> घोंसले के 1 स्तर या यहां तक ​​कि पुनरावर्ती घोंसले के साथ भी लागू होता है। @ ज़ुज़ेल के उत्तर से लापता होने वाली एकमात्र चीज़ यह है कि आप प्रत्येक स्तर पर संभवतः करना चाहते हैं। –