2017-10-16 120 views
2

我已經在我的應用程序以下航線VueJs:如何訪問常用的JavaScript模塊的電流路徑元字段 -

const router = new Router({ 
    mode: 'history', 
    scrollBehavior:() => ({ y: 0 }), 
    routes: [ 
    { path: '/', component: HomePage, meta: { pageType: 'home'} }, 
    ], 
}); 

,並有共同的JS模塊:

const trackEvent = { 
    getFields:() => { 
    //here need to access meta fields(pageType) of current route. how is it possible ? 
    } 
} 
export default trackEvent; 

我想訪問元領域在共同的模塊。這怎麼可能 ?

回答

3

meta屬性可通過Vue實例上的this.$route.meta訪問。只需將其傳遞給getFields方法即可。

export default { 
    created() { 
    let meta = getFields(this.$route.meta); 
    } 
} 

getFields: (meta) => { 
    console.log(meta); 

    return meta.fields.pageType; // not sure what you're trying to return exactly 
} 

如果你不能在當前的路線傳遞,你需要導入router對象,並從當前的路線:

import router from 'path/to/your/router' 

const trackEvent = { 
    getFields:() => { 
    let meta = router.currentRoute.meta; 
    console.log(meta); 

    return meta.fields.pageType; // not sure what you're trying to return exactly 
    } 
} 
export default trackEvent; 
+0

我有一些用例,我直接需要在JS模塊中訪問元字段而不從元件傳遞元字段。 –

+0

好的,在這種情況下,您需要導入'router'對象。看我的編輯。 – thanksd