2016-03-20 5 views
8

मैं वू राउटर का उपयोग करके एक साधारण मेनू बनाने की कोशिश कर रहा हूं, आईडी को मेरे मार्ग में सभी रूट्स और डिस्प्लेर्ट करना पसंद है, वर्तमान में मेरे घटक में नीचे विधि का उपयोग कर रहा हूं लेकिन मुझे बस एक फ़ंक्शन मिल जाएगा, मैं अलग-अलग मार्ग पाने के लिए पुन: प्रयास करता हूं?एक वू राउटर में सभी मार्ग प्राप्त करें

methods : { 
getMenuLinks: function() { 

     var t = this.$router.map() ; 
     //t returns a vue object instance 
     return t._children ; 
     // did not know how to iterate this 
    } 

} 

मैं प्रत्येक मैप किया मार्ग के नीचे की तरह कुछ पाने के लिए सभी Maped मार्गों पुनरावृति करना चाहते हैं:

<a v-link="{ path: 'home' }">Home</a> 

उत्तर

10

Nuxt में, मार्ग अपने आप उत्पन्न कर रहे हैं तो मैं नहीं कर सका क्या सुझाव दिया @zxzak।

यहां आप इस मामले में क्या कर सकते हैं।

<template v-for="item in items"> 
    <b-nav-item :to="item.path"> 
     {{item.name}} 
    </b-nav-item> 
</template> 
export default { 
    created() { 
     this.$router.options.routes.forEach(route => { 
      this.items.push({ 
       name: route.name 
       , path: route.path 
      }) 
     }) 
    } 
    , data() { 
     return { 
      items: [] 
     } 
    } 
} 
+0

उत्तर के लिए धन्यवाद, वास्तव में वू -1 राउटर में एक बग था जिसने मुझे यह पोस्ट किया ... तारीख देखें, वैसे भी समाधान तर्क, कुडोस के लिए धन्यवाद। –

+2

'$ router.options.routes' का आधिकारिक दस्तावेज़ कहां है? – vikyd

4

इसके बजाय Vue के internals पर प्रसारण की, आपका शुरुआती घटक के डेटा के अंदर मार्गों डाल दिया।

var map = { 
    '/foo': { 
    component: Foo 
    }, 
    '/bar': { 
    component: Bar 
    } 
} 

var routes = Object.keys(map) 

var App = Vue.extend({ 
    data: function() { 
    return { 
     routes: routes 
    } 
    } 
}) 

router.map(map) 
router.start(App, '#app') 

http://jsfiddle.net/xyu276sa/380/

+0

बहुत अच्छी सोच! –

+0

लेकिन मैं मार्गों को कैसे पुन: सक्रिय करूं? –

+1

अद्यतन jsfiddle – zxzak

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