【问题标题】:Angular vary header and footer based on current moduleAngular 根据当前模块改变页眉和页脚
【发布时间】:2020-11-15 18:26:13
【问题描述】:

目前我的应用程序相当简单,只有一个模块,但我希望使用管理仪表板对其进行扩展。从高层次的角度来看,我计划拆分为 2 个模块:一个用于面向客户的站点,一个用于经过验证的惰性管理模块,如下所示: Client and admin module diagram

我不知道应该如何为网站的这两个部分设置页眉和页脚组件。对于一个单模块、单“部分”的网站,通过将它们放在app-component.html 中,很容易在应用程序中拥有统一的页眉和页脚,如下所示:

<app-header></app-header>
<router-outlet></router-outlet>
<app-footer></app-footer>

我的问题是,当我在管理部分时,我想要一个 不同 的页眉和页脚组件,而不是在“主”站点时。

到目前为止,我一直在考虑这些想法:

  1. auth-service 中获取isLoggedIn 布尔值,以根据站点部分改变页眉和页脚内容。

    • 这是相当直截了当的,但感觉就像是一个 hack,并且暴露了我更愿意放在身份验证保护后面的代码。
  2. 在应用的每个“视图”组件中,手动放入app-headerapp-footer组件。

    • 同样,这感觉像是一种 hack,而且会很乏味,但我的应用实际上只有 5-10 个单独的视图页面,因此可以管理。
  3. 使用 3 个路由模块:main-routerclient-routeradmin-router。主路由器将在app-client-componentapp-admin-component 之间进行定向,每个的模板内容基本上都是上述app-component.html,但路由器将分别是客户端和管理路由器。

    • 这感觉像是最好的长期解决方案,但我觉得应该有一个更简单的解决方案。

如果有人以前遇到过这个问题,或者对我应该如何构建这个问题有任何见解,我们将不胜感激!

【问题讨论】:

    标签: angular angular-routing angular-module


    【解决方案1】:

    您可以创建不同的布局并重复使用它们。您的组件对页眉和页脚一无所知 - 布局选择在路由器配置中。 请参阅此链接: https://medium.com/angular-in-depth/angular-routing-reusing-common-layout-for-pages-from-different-modules-440a23f86b57

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多