我需要在每个路由器插座链路上显示相同的块。它只是一个标题,但标题和一些按钮是从应用程序组件管理的。
我基本上需要做这样的事情:
<router-outlet>
<md-toolbar (click)="someAction()"> {{ title }} </md-toolbar>
</router-outlet>
在每个路由器链接里面都是这样的:
<ng-content></ng-content>
<h1>This is my page</h1>
<p>blablabla</p>
因此md-toolbar标签将位于页面内
答案 0 :(得分:0)
<router-outlet>
不应该包含任何内容。它只是路由器添加组件的锚点。
您可以使用带有虚拟组件的空路径路径(show-nothing-component)在用户导航到详细视图之前显示默认内容。
答案 1 :(得分:0)
尝试更改它:
<md-toolbar (click)="someAction()"> {{ title }} </md-toolbar>
<router-outlet></router-outlet>
然后它将出现在路由内容的顶部。
如果你需要一些没有工具栏的组件和一些组件,你需要另一个中间组件。
<强> app.component.html 强>
<router-outlet></router-outlet>
如果您需要否菜单或工具栏,请转到上述路由器插座。
<强> shell.component.html 强>
<md-toolbar (click)="someAction()"> {{ title }} </md-toolbar>
<router-outlet></router-outlet>
为需要工具栏的任何内容路由到上述路由器插座。
路线配置
RouterModule.forRoot([
{
path: '',
component: ShellComponent,
children: [
{ path: 'welcome', component: WelcomeComponent },
{ path: 'x', component: XComponent},
{ path: '', redirectTo: 'welcome', pathMatch: 'full' },
]
},
{ path: 'login', component: LoginComponent }, // <-- no toolbar
{ path: '**', component: PageNotFoundComponent } // <-- no toolbar
])
答案 2 :(得分:0)
为什么你需要这样做?你不能这样打字:
<md-toolbar (click)="someAction()"> {{ title }} </md-toolbar>
<router-outlet></router-outlet>
每次在路由器插座上方生成此工具栏。您不必使用<ng-content>