根据Angular 8中的RouterURL更改样式

Posted

技术标签:

【中文标题】根据Angular 8中的RouterURL更改样式【英文标题】:Change style depending on RouterURL in Angular 8 【发布时间】:2020-06-04 10:05:35 【问题描述】:

我有一个名为“NavigatorComponent”的组件。我有我的“routerLink”。所有 url 都附加到不同的组件。现在的情况是我必须根据当前的 url 更改链接颜色。我是 Angular 的新手,所以我不知道该怎么做。任何帮助将不胜感激。下面是 Navigator.html 和 app-routing.module.ts 文件的代码 sn-p。

<ul>
   <li><a class="active" [routerLink] = "'/welcome-information'">Welcome Information</a></li>
   <li><a class="disable" [routerLink] = "'/your-plan'">Select Your Plan</a></li>
   <li><a class="disable" [routerLink] = "'/your-data'">Confirm Your Data</a></li>
   <li><a class="disable" [routerLink] = "'/bank-draft'">Bank Draft</a></li>
   <li><a class="disable" [routerLink] = "'/your-choice'">Finalize Your Choice</a></li>
</ul>

const routes: Routes = [
  path: 'welcome-information' , component: WelcomeInformationComponent,
  path: 'your-plan' , component: YourPlanComponent,
  path: 'your-data' , component: YourDataComponent,
  path: 'bank-draft' , component: BankDraftComponent,
  path: 'your-choice' , component: YourChoiceComponent,
];

【问题讨论】:

【参考方案1】:

使用routerLinkActive 指令。

当链接的路由变为活动状态时,该指令将 CSS 类添加到元素。

<li><a  routerLinkActive="active" [routerLink] = "'/welcome-information'">Welcome Information</a></li>
<li><a  routerLinkActive="active"  class="disable" [routerLink] = "'/your-plan'">Select Your Plan</a></li>

Demo

【讨论】:

谢谢。阿德里塔。这是一个真正的帮助。但是,我想知道访问链接是否也有任何指令?以及如何使用禁用类禁用其他链接? @PiyaliGhosh 我不知道访问链接指令,你必须检查。对于禁用的链接,您可以使用class="disable"。我添加了一个演示。检查 app.component.css 以及【参考方案2】:

您可以使用RouterLinkActive 将 CSS 类添加到您的活动链接中,Exp:

<li><a [routerLinkActive]="['class1', 'class2'] [routerLink] = "'/your-plan'">Select Your Plan</a></li>

或者

<li><a routerLinkActive="class1 class2" [routerLink] = "'/your-plan'">Select Your Plan</a></li>

【讨论】:

以上是关于根据Angular 8中的RouterURL更改样式的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 JWT 令牌中的属性更改前端(Angular)视图上显示的内容?

如何在不更改后端的情况下解决 Angular 8 中的 CORS 问题?

如何根据Angular中一个组件中的click事件更改其他组件中的数据?

请参阅 Angular 8 中强类型列表中的 FormBuilder 成员

Summernote 在 Angular 8 中无法正确更改内容

使用ngIf更改Angular 8中的图像时的问题编写语法