angular - 在应用程序组件以外的组件中使用 <router-outlet>?

标签 angular angular-routing angular-router

如果我们在组件(任何组件)中使用 <router-outlet> ,然后将 routerLink 放在该组件内的另一个组件上,链接是否总是呈现链接到当前事件组件的 <router-outlet> 中的组件?
换句话说,组件 routerLink 属性是否总是与组件内的 <router-outlet> 配对?

最佳答案

<router-outlet> 未链接到组件。它链接到它所在组件的子路由。
routerLink 只是导航应用程序分配的路由
例如假设你有这些路线

const appRoutes: Routes = [
  { path: 'home', component: HomeComponent },
  { path: 'account', component: AccountComponent, children: [
    { path: 'details', component: AccountDetails
  ]
];
你的 AppComponent 看起来像我们会说的
@Component({
  template: `
<div>
  <a routerLink='/home'>Home</a>
  <a routerLink='/account'>Account</a>
  <a routerLink-'/account/details>Account Details</a>
</div>
<div>
  <router-outlet></router-outlet>
</div>
`
})
假设您的 AccountComponent 是这样的
@Component({
  template: `
    <div>
      Account Name {{ name }}
    </div>
    <div>
      <a routerLink='/home'>Home</a>
      <a routerLink='/account'>Account</a>
      <a routerLink-'/account/details>Account Details</a>
    </div>
    <router-outlet></router-outlet>
    `
  })
当您单击“帐户详细信息”时,它将在帐户组件的路由器导出中加载包含详细信息的帐户组件。
当您单击 home 时,它​​将加载应用程序组件,并在该组件的路由器 socket 中加载 home 组件。它根据它在路由树中的位置加载路由器导出中的组件。
注意:这不是生产代码,不应如此使用。

关于angular - 在应用程序组件以外的组件中使用 <router-outlet>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48509811/

相关文章:

Angular 5 : pass a callback method to 3rd party script with angular

angular - 有什么方法可以使 SASS/SCSS 变量可以访问,而无需使用 Angular-CLI 在每个组件中导入它们

angularjs - Angular 更新和清除工厂变量

angular - 为什么 Angular 类型 "Routes"是可变的?

angular - 延迟加载模块路由的子级不起作用

javascript - 使用 Spring Boot 构建短信和视频通话应用程序

javascript - Angular 2 - 如何在指令上设置动画?

angular - 处理 Angular 5 路由器中的 URL 解析错误

angular-material - 使用 routerLink 时,角度 Material 选项卡动画会中断

angular - 在你的模块中使用另一个模块 : imports vs. 在路由中使用 loadChildren