2017-12-19 10 views
0

私はこれらのようなルートとサブルートを持っています。

export default new Router({ 
    routes: [ 
    { 
     path: '/user', 
     component: UserView, 
     meta: {title: 'User Manager'}, 
     children: [ 
     {path: 'editor', component: EditorView, meta: {title: 'User Editor'}} 
     ] 
    } 
    ] 
}) 
UserView

EditorView両方の機能を搭載しています。

export defaults { 
    mounted() { 
    console.log(this.$route) 
    } 
} 

と私は二回$routeデータ、ブラウザでコンソール印刷をhttp://host:port/#/user/editorを入力し、それらが同じオブジェクトです。どうすればUserView経路データを取得できますか?

{name: undefined, meta: {…}, path: "/user/editor", hash: "", query: {…}, …} 
{name: undefined, meta: {…}, path: "/user/editor", hash: "", query: {…}, …} 

enter image description here

UserViewEditorView同じページ内にあり、彼らはこの絵のように見えるのhtml。 enter image description here

+0

変更をルーティングしましたか、または両方のコンポーネントが同じページにありましたか?ルートは、ロードされたコンポーネントではなく、URIに基づいて変更されます。 –

+0

@JimWright彼らは同じページにあります、私は質問 – user1434702

答えて

0

ネストされたルートが関係する場合、特定のURLに一致する複数のルート部分があります。あなたはあなたが興味のある特定のルートのためthis.$route.matchedを検索する必要があります

はあなたが興味を持っているルートの名前を設定した場合、それは簡単に見つけること作ります:

{ 
    path: 'editor', 
    name: 'editor', // <-- Add this 
    component: EditorView, 
    meta: { 
    title: 'User Editor' 
    } 
} 
mounted() { 
    const route = this.$route.matched.find(r => r.name === 'editor'); 
    console.log(route.meta.title); 
} 
+0

を更新しました 'matched'は同じです、私は私の質問を更新しました。 'http:// host:port /#/ user'と入力して'#/ user/editor'に行くとうまくいきます。問題は最初に '#/ user/editor'を実行することです。 – user1434702

+0

あなたの問題が何であるか分かりません。 '$ route'(したがって' $ route.matched')はすべてのコンポーネントで同じになります。 '$ route'は、その特定のコンポーネントのマッチしたルートを表していません。 –

+0

私はそれをありがとう! – user1434702

関連する問題