首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 6 routerLinkActive不工作

Angular 6 routerLinkActive不工作
EN

Stack Overflow用户
提问于 2018-06-30 03:56:40
回答 1查看 20.4K关注 0票数 7

我正在使用Angular 6建立一个网站,现在已经被一个问题卡住了几天。我正在尝试根据活动页面更改导航栏上的文本颜色(列表项)。我已经看到了如何使用AngularJS和javascript来实现这一点的示例。我在用于Angular 5+的https://angular.io/api/router/RouterLinkActive库中看到了routerActiveLink库文档,这似乎是一个简单的解决方案,但它对我并不起作用。我尝试了许多不同的例子,我在网上看到,但没有一个有效。我是不是遗漏了什么?以下是一些代码片段:

代码语言:javascript
复制
header.component.html  
    <div class="navbar-collapse collapse navbar-nav pull-right" id="navbar">
<ul class="navbar-nav" style="align-items: center;">
  <li class="main-links" [routerLinkActive]="['active']">
    <a class="al" [routerLink]="['home']" id="home-button" href="home">Home</a>
  </li>
  <li class="main-links">
    <a class="al" routerLink="/about" routerLinkActive="active" id="about-button" href="about">About</a>
  </li>
  <li class="main-links">
    <a class="al" id="blog-button" href="https://tspace.web.att.com/blogs/financelive/?lang=en_us" target="_blank">Blog</a>
  </li>
  <li class="main-links">
    <a class="al" routerLink="/albums" routerLinkActive="active" id="albums-button" href="albums">Platinum Albums</a>
  </li>
  <li class="main-links">
    <a class="al" routerLink="/programs" routerLinkActive="active" id="programs-button" href="programs">Development Programs</a>
  </li>
  <li class="main-links">
    <a class="al" routerLink="/contact" routerLinkActive="active" id="contact-button" href="contact">Contact Us</a>
  </li>
</ul>

这是我对header.component.less中active的声明:

代码语言:javascript
复制
    .active {
color: #009fdb;
font-family: font-bold;

}

当我使用带有括号的routerLinkActive时,页面根本不会加载,而当我在a标记中使用routerLink和routerLinkActive时,它根本不会注册。有没有我遗漏的一些导入。我尝试过从@angular/core导入router、routerlinkactive和routerlink。

我特意在代码示例中保留了使用routerLinkActive的两种不同风格。当我实际运行它的时候并不是这样的。

我安装了Angular 6、bootstrap 4.1.1、jquery 3和popperjs。

经过进一步的检查,我发现routerLinkActive可以正确地处理根应用程序模块中的元素。我为页眉和页脚创建了一个名为UiModule的新模块,该功能在页眉中不起作用。关于如何让routerLinkActive在这个模块上工作,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-12 03:19:08

尝试将RouterModule导入到UiModule中,它将无法使用导入到app.module.ts文件中的内容

代码语言:javascript
复制
import { RouterModule } from '@angular/router';
// some other imports here

@NgModule({
  imports: [
    RouterModule
  ],
  exports: [
    // export UI components
  ],
  declarations: [
    // declare UI components
  ]
})

当我遇到这个问题时,我正确地导入了所有内容。我花了几天时间才意识到问题出在我构建HTML的方式上

代码语言:javascript
复制
<li class="nav-list">
  <a routerLinkActive="active" 
    [routerLinkActiveOptions]="{exact: true}"
    routerLink="/" 
    href="/">
    <i class="material-icons nav-link-icon">person</i>
    <span class="nav-link-text">Profile</span>
  </a>
</li>

问题是,我一直在关注.active类出现在li元素中,而它一直出现在anchor元素中。只需确保这不是在您的情况下发生的。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51108604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档