在角度4中为不同页面设置不同布局的最佳方法

2024-03-14

我是 Angular 4 的新手。我想要实现的是为应用程序中的不同页面设置不同的布局页眉和页脚。我有三种不同的情况:

  1. 登录、注册页面(无页眉、无页脚)

路线:['登录','注册']

  1. 营销网站页面(这是根路径,它有页眉和页脚,这些部分大多在登录之前出现)

路线 : ['','关于','联系方式']

  1. 应用程序登录页面(我在本节中对于所有应用程序页面都有不同的页眉和页脚,但此页眉和页脚与营销网站页眉和页脚不同)

路线 : ['仪表板','个人资料']

我通过向路由器组件 html 添加页眉和页脚来临时运行该应用程序。

请告诉我更好的方法。

这是我的代码:

应用程序\应用程序.路由.ts

   const appRoutes: Routes = [
        { path: '', component: HomeComponent},
        { path: 'about', component: AboutComponent},
        { path: 'contact', component: ContactComponent},
        { path: 'login', component: LoginComponent },
        { path: 'register', component: RegisterComponent },
        { path: 'dashboard', component: DashboardComponent },
        { path: 'profile', component: ProfileComponent },


        // otherwise redirect to home
        { path: '**', redirectTo: '' }
    ];

    export const routing = RouterModule.forRoot(appRoutes);

应用程序组件.html

<router-outlet></router-outlet>

应用程序/home/home.component.html

<site-header></site-header>
<div class="container">
    <p>Here goes my home html</p>
</div>
<site-footer></site-footer>

应用程序/about/about.component.html

<site-header></site-header>
<div class="container">
    <p>Here goes my about html</p>
</div>
<site-footer></site-footer>

应用程序/登录/login.component.html

<div class="login-container">
    <p>Here goes my login html</p>
</div>

应用程序/仪表板/dashboard.component.html

<app-header></app-header>
<div class="container">
    <p>Here goes my dashboard html</p>
</div>
<app-footer></app-footer>

I saw 这个问题 https://stackoverflow.com/questions/40508557/multiple-layout-for-different-pages-in-angular-2关于堆栈溢出,但我没有从该答案中得到清晰的图片


您可以使用子路线解决您的问题。

请参阅工作演示:https://angular-multi-layout-example.stackblitz.io/ https://angular-multi-layout-example.stackblitz.io/或编辑于https://stackblitz.com/edit/angular-multi-layout-example https://stackblitz.com/edit/angular-multi-layout-example

设置你的路线如下

const appRoutes: Routes = [
    
    // Site routes goes here 
    { 
        path: '', 
        component: SiteLayoutComponent,
        children: [
          { path: '', component: HomeComponent, pathMatch: 'full'},
          { path: 'about', component: AboutComponent }
        ]
    },
    
    // App routes goes here
    { 
        path: '',
        component: AppLayoutComponent, 
        children: [
          { path: 'dashboard', component: DashboardComponent },
          { path: 'profile', component: ProfileComponent }
        ]
    },

    // no layout routes
    { path: 'login', component: LoginComponent},
    { path: 'register', component: RegisterComponent },
    // otherwise redirect to home
    { path: '**', redirectTo: '' }
];

export const routing = RouterModule.forRoot(appRoutes);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在角度4中为不同页面设置不同布局的最佳方法 的相关文章

随机推荐

  • Firefox:“加载脚本时出错”

    如果我 快速单击 网站上的不同链接 Asp Net MVC jQuery 完整回发 FireFox 3 下会出现 加载脚本错误 重现这个错误是相当容易的任务 但我不明白为什么会发生 每次它都会显示不同的失败脚本文件 所有 JavaScrip
  • Linux 中的 itoa 函数在哪里?

    itoa 是将数字转换为字符串的非常方便的函数 Linux下好像没有itoa 是否有等效的功能或者我必须使用sprintf str d num 编辑 抱歉 我应该记得这台机器绝对是非标准的 已经插入了各种非标准libc用于学术目的的实现 A
  • 从 pandas 数据框中删除句子长于特定单词长度的行

    我想从 pandas 数据框中删除行 其中包含特定列中长度大于所需长度的字符串 例如 输入帧 X Y 0 Hi how are you 1 An apple 2 glass of water 3 I like to watch movie
  • python正则表达式重复与捕获问题

    使用python3的正则表达式功能 是否可以根据找到的重复次数来捕获可变数量的捕获块 例如 在以下搜索字符串中 我想使用相同的正则表达式捕获所有数字字符串 搜索字符串 1 尝试捕获 89 45 zzz89zzz45 mp3 搜索字符串 2
  • 列名必须是字符串或数组 yii

    我在访问 yii 的网络应用程序时遇到了一些困难 我的配置与所有者的设置相同 但是当我尝试访问时 出现错误 列必须是字符串或数组 我该如何解决它 提前致谢 报告错误消息时 获得准确的错误消息会很有帮助 实际的错误消息是 列name必须是字符
  • 允许在 Mac OS X 应用程序中读取文件的权利是什么? (拒绝文件读取数据错误)

    我正在制作一个 Mac OS X 应用程序 沙盒 它从 etc myfolder 中安装的配置文件读取 当我尝试使用 NSFileHandle 读取文件时 我在控制台中收到以下错误 sandboxd 3251 MyApp 3251 deny
  • 文件上传到文件流

    我正在将文件与 HttpWebRequest 一起发送 我的文件将来自 FileUpload UI 这里我需要将文件上传转换为文件流 以将流与 HttpWebRequest 一起发送 如何将 FileUpload 转换为文件流 由于 Fil
  • 以编程方式获取完整的 Ruby 版本?

    我知道可以通过以下方式获取 Ruby 版本 例如 1 9 3 RUBY VERSION持续的 但是 我想知道如何确定确切的版本 例如 1 9 3 p0 原因是 Ruby 1 9 3 的早期版本中存在一个未修复的错误 该错误在更高版本中起作用
  • 移动赋值运算符和移动构造函数之间的区别?

    一段时间以来 这一直让我感到困惑 而且到目前为止我还没有找到满意的答案 问题很简单 什么时候有一个move assignment operator接到电话 什么时候move constructor operator接到电话吗 cpprefe
  • 通过flask/python在html中显示从couchDB附加的图像

    我正在使用 Flask 和 python 从 couchdb 获取图像附件 然后将图像传递到 imgurl html 进行显示 问题是我只得到这个 返回 0x103b9c0b8 gt 处的 couchdb http ResponseBody
  • 跨线程操作无效:从创建它的线程以外的线程访问控制“textBox1”[重复]

    这个问题在这里已经有答案了 我想使用 UART 将温度值从微控制器发送到 C 接口并显示温度Label Content 这是我的微控制器代码 while 1 key scan get value of temp if Usart Data
  • 具有多个按钮和多个视频的 Listactivity

    我有一个 listactivity 应用程序 由 5 行组成 每行包含一个文本和 5 个按钮 文本和按钮都是可单击的 文本将打开 MyDay 活动 即文本视图 当您单击任何按钮时 它必须打开视频视图屏幕 其工作正常 如下图所示 但我的问题是
  • jQuery.each() 如何处理关联数组(对象)?

    我有一个关联数组 里面有两个对象 运行这个 myassoc each 回调仅运行一次 回调参数 索引和对象 也分别返回 0 和整个关联数组 人们会期望jQuery each 对数组中的每个元素运行 返回正确的键作为索引 返回正确的元素作为对
  • 替换 PhotoSwipe 库中的图像

    我有一个照片滑动 http www photoswipe com 我的页面上的画廊是这样以编程方式创建的 var instance window Code PhotoSwipe attach image options 现在我想更新图库中的
  • 在 Django 单元测试中使用会话对象

    我正在编写一个登录视图 并想为该视图添加单元测试 我的观点是这样的 def login request if request POST usrname request POST get username password request P
  • NLog - 删除超过 X 天的日志

    如何删除日志早于 X 天的文件 这很简单 但我在一个文件夹中只记录一天的日志 我的 NLog config 如下所示
  • Gnuplot 列堆叠直方图 - 行/行计数

    我有一个数据文件 其中包含未定义数量的条目 如下所示 A B C D E 1 0 2 5 4 7 4 3 4 1 8 7 4 0 7 1 1 第一行代表工作时间 然后以交替的方式暂停等等 为了可视化这一点 我通过定义两种具有不同颜色的线条样
  • 打印 char 的十进制值

    打印字符的十进制值的程序 include
  • Microsoft.Azure.NotificationHubs 1.0.9 是否与 .NET Core 2.0 兼容?

    我们将NotificationHubs 1 0 9 版与 NetCore 2 0 和 Net Framework 4 7 结合使用 在编译时 我们收到此警告 包 Microsoft Azure NOtificationHubs 1 0 9
  • 在角度4中为不同页面设置不同布局的最佳方法

    我是 Angular 4 的新手 我想要实现的是为应用程序中的不同页面设置不同的布局页眉和页脚 我有三种不同的情况 登录 注册页面 无页眉 无页脚 路线 登录 注册 营销网站页面 这是根路径 它有页眉和页脚 这些部分大多在登录之前出现 路线