我有名为demo
和home
的组件。我已经将demo
组件放置在app.component.html
文件中。 demo
组件如下所示:
如图所示,demo
组件具有button (HOME)
。对于此按钮,我给了路由器链接以导航到home
组件。现在,它导航到首页component
很好,但是demo
和home
都显示在同一页面上。我想在单独的页面中路由它。
Stackblitz DEMO
答案 0 :(得分:3)
app.component.html(删除演示组件)
<router-outlet></router-outlet>
更新您的路由器以添加演示路径:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { DemoComponent } from './demo/demo.component';
const routes: Routes = [
{ path: 'demo', component: DemoComponent },
{ path: 'home', component: HomeComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class AppRoutingModule { }
问题是您要在路由器出口之外渲染演示组件。
答案 1 :(得分:2)
如果您想默认显示Demo
组件,但是在更改路线时将其删除,则可以像以下那样更新您的路线配置:
const routes: Routes = [
{ path: '', component: DemoComponent }, // this will route to demo component by default;
{ path: 'home', component: HomeComponent },
];
在您的<router-outlet></router-outlet>
中放入app.component.html
。
在您的示例中,您将demo component
静态地添加到了app component
上,因此这意味着它将一直存在(除非您添加一些条件)
https://stackblitz.com/edit/angular-material2-issue-fkwdrm?file=app%2Fapp-routing.module.ts
答案 2 :(得分:1)
从StackBlitz中查看app.component.html文件:
<app-demo></app-demo>
<router-outlet></router-outlet>
这告诉Angular路由器显示app-demo组件以及路由器应该显示的任何组件。只需从主应用程序组件中删除应用程序演示,就可以了。