【发布时间】:2018-04-09 18:45:10
【问题描述】:
我尝试像下面那样设置深度嵌套,我有点确定我们不能在 router-link 中使用 exact 来进行嵌套路由。
<div id="app">
<nav class="nav nav-main">
<router-link exact to="/" class="nav-link" activeClass="active">Dashboard</router-link>
<router-link to="/projects" class="nav-link" activeClass="active">Projects</router-link>
</nav>
<div class="parent-content">
<h4>Content for Parent goes here</h4>
</div>
<router-view>
<nav class="nav nav-main">
<router-link :to="'/projects/' + $route.params.projectId" class="nav-link" activeClass="active">Deals</router-link>
<router-link :to="'/projects/' + $route.params.projectId + '/commitments/'" class="nav-link" activeClass="active">Commitments</router-link>
</nav>
<router-view>
<div class="child-content">
<h4>Content for Child goes here</h4>
</div>
</router-view>
</router-view>
</div>
我的路线:
routes: [
{
path: '/',
component: Dashboard
},
{
path: '/projects',
component: Projects
},
{
path: '/projects/:id',
name: 'projects-detail',
component: ProjectDetails,
children: [
// DEALS
{
path: '/projects/:projectId/deals',
component: Deals
},
{
path: '/projects/:projectId/deals/:dealId/details',
component: DealDetails
},
// COMMITMENTS
{
path: '/projects/:projectId/deals/:dealId/commitments/:commitmentId/edit',
component: CommitmentEdit
}
]
}
]
通过上述设置,我需要激活路由器链接,当路由是:/projects/:projectId/deals/:dealId/details 然后激活Deals/projects/:projectId/deals/:dealId/commitments/:commitmentId/edit 然后激活Commitments
【问题讨论】:
-
您可以尝试计算传递的参数。如果您传递 2 个参数,那么它的交易页面,如果 3 则它的承诺。您可以使用 $route.params 获取参数,然后根据这些值绑定类。
-
您的内部
<router-view>没有像</router-view>那样正确关闭,似乎语法错误,可能是现场演示,我们很容易回答。 -
感谢您注意到,我刚刚在我的实际代码中添加了最低工作代码和它的罚款 :)
标签: javascript vue.js vue-router