css - 如何使用 Angular 5 基于其组件将特定类添加到导航栏

标签 css angular angular5 angular-components

如何使用 Angular 5 基于其组件将特定类添加到导航栏

基本上,我正在尝试创建一个 Angular 5 应用程序。现在在这个应用程序中,我有多个组件,如 HomeComponentAboutComponentContactComponent。现在我希望我的导航栏背景在主页组件中完全透明,但在其他组件中为黑色。

我也在这个元素中使用 bootstrap 4。所以在其他组件中,我只想将 bg-primary 类添加到我的导航栏和主页组件中,我只想删除该类和一些 CSS 样式。

我怎样才能实现它?

这是我的导航栏的代码

<nav class="navbar navbar-expand-lg navbar-dark text-uppercase bg-primary w-100 position-fixed">
    ........
    .......
</nav>

最佳答案

可能有一种简单的方法可以做到这一点。如果您的导航栏中有一个链接到您的主页组件的 routerLink,您可以使用 routerLinkActive 指令来查明该路由此时是否处于事件状态。

<a [routerLink]="['/home']" routerLinkActive #homeActive="routerLinkActive">

在第二部分 #homeActive="routerLinkActive" 中,您定义了一个模板变量,该变量为 true 或 false,具体取决于我们是否在主路线上。

然后在您的导航栏中,您可以使用该变量来控制类。

<nav class="..." [class.bg-primary]="!homeActive">

bg-primary 类将在主路由未激活时应用。

如果我没记错的话,您必须确保您的主路由与 / 不同,否则每条路由的 routerLinkActive 都为真。

参见the docs有关该指令的更多详细信息。

关于css - 如何使用 Angular 5 基于其组件将特定类添加到导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50182703/

相关文章:

javascript - 如何改变鼠标移动的渐变程度?

javascript - 根据手机屏幕动态设置HTML5 Canvas 大小

Angular 2 架构 - 跨模块共享服务的地方

Angular5 未设置 X-XSRF-TOKEN header

html - 是否可以为 Facebook 页面插件提供圆 Angular ?

html - 响应式设计不适用于 heroku 部署的 Rails 应用程序?

node.js - 使用 Angular 2 observables 异步填充对象属性?

javascript - Angular 4错误: Cannot read property 'push' of undefined

angular - 在 Angular CLI 中从 ng-build 中排除模块......不工作

javascript - Ag-Grid cellRender with Button Click