angular - 当子路由器链接在角度 5 中单击时如何为父级添加活动类
问题描述
嗨,我有以下 html 代码
<li class="" routerLinkActive="active" [routerLinkActiveOptions]="{exact:true}"><a [routerLink]="['/home']">my first tab</a></li>
<li [class.active]="rla?.isActive" routerLinkActive="active"><a class="pointer">my second tab</a>
<ul>
<li class="" #rla="routerLinkActive" routerLinkActive="active" ><a [routerLink]="['/myFirstLink','rock']">Past</a></li>
<li class="" #rla="routerLinkActive" routerLinkActive="active" ><a [routerLink]="['/myFirstLink','aj']">Upcoming</a></li>
</ul>
</li>
</li>
路径是
{
path: "myFirstLink/:param",
loadChildren: ".....
}
那么如何在不使用 jquery 的情况下单击 myFirstLink 时为我的第二个选项卡添加活动类?,我的代码不起作用
解决方案
routerLinkActive
仅当您尝试路由任何组件时才有效-我没有看到您正在尝试通过单击第二个选项卡来路由到任何组件,因此请routerLinkActive
从中删除
当您单击第二个选项卡的子选项卡时动态地将活动添加到第二个选项卡 - 我会告诉您动态添加的解决方案 - 您需要知道何时单击子选项卡以便将(click)
事件绑定到它
`<li routerLinkActive="active" >
<a [routerLink]="['/myFirstLink','rock']" (click)='addClass = true'>Past</a>
</li>
<li routerLinkActive="active">
<a [routerLink]="['/myFirstLink','aj']" (click)='addClass = true'>Upcoming</a>
</li>`
addClass
将是您的属性component.ts
值false
,当单击子组件时,它将成为现实,现在最终将此属性添加到您的父选项卡
<li [class.active]="addClass"><a class="pointer">my second tab</a>
希望这会起作用 -addClass
如果未选择属性,请将其更改为 false - 不是正式的工作方式,但似乎是一种解决方法。
快乐编码!
推荐阅读
- mysql - 如何根据 JOIN 值和今天月份创建 SQL 排序
- database - 如何解决没有root权限的MongoDB错误“打开的文件太多”
- jackson - 无法解析示例 json。获取 JsonParseException
- javascript - #Antd#如何将自制组件与Form.item绑定
- html - CSS:有没有办法在不激活下面的元素的情况下激活悬停元素?
- javascript - 从数组到对象转换得到对象模式
- css - 引导程序上带有 css 的工具提示不起作用
- python - 为什么上传文件不能在标头中添加内容类型(使用 python 请求)
- r - 带有 colname 和逻辑运算符的 R 子集
- openssl - 我可以将没有证书的 RSA 公钥存储到现有的 jks 文件中吗?