有条件的<router-outlet>

时间:2018-07-06 06:57:11

标签: angular typescript angular-ui-router angular-router

我在父页面上有一个路由器插座,其中显示“ Hello World!”

<base href="/">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<body style="height: auto; min-height: 100%;"  class="skin-blue sidebar-mini">
        <div id="wrapper">
            <app-header></app-header>
            <app-menubar></app-menubar>
        <div class="content-wrapper" style="min-height:92vh">
            <section id="MainContent" >
            <div class="content container-fluid body-content" style="background-image: url('./assets/Images/bg.jpg'); min-height: 615px;">
                <router-outlet>

                  Hello World! 

                </router-outlet>
            </div>
            </section>
         </div>
            <footer class="main-footer navbar-fixed-bottom">
                    <div class="col-sm-12 text-center pull-left">

                        <small > Version 1.0</small>
                     </div>
            </footer>
        </div>
</body>

我想要“世界你好!”文本仅显示在父页面上,而不出现在任何子页面上。但是其余菜单项和页脚在所有子页面上都保持不变。

route-definations.ts

 { path:'parentPage',component:MasterComponent, canActivate:[AuthGuard],
    children:[
        { path:'ChildPage1',component:ChildPage1Component},
        { path:'ChildPage2',component:ChildPage2Component},
           ]
    },

是否可以通过条件语句来显示“ Hello world!”在父页面而不是在所有子页面中?

1 个答案:

答案 0 :(得分:1)

从路由器插座中删除该Hello World,只需添加一条新的子路径,一条空路径和一个显示hello world的组件即可。

{ 
  path: 'parentPage', 
  component: MasterComponent, 
  canActivate:[AuthGuard],
  children: [
    { path: '', component: SomeComponentDisplayingHelloWorld },
    { path: 'ChildPage1', component:ChildPage1Component },
    { path: 'ChildPage2', component:ChildPage2Component },
  ]
}