我有一个简短的问题我想选择活动的路由类,它是用Angular4定义的,如下所示:
$(".navigation > nav.side > ul > li.active ul.sublist").show();
目前,我在Angular的onInit()
方法中调用此方法,但这不起作用。我发现当routerLinkActive
方法被触发时,onInit()
类没有被添加。现在我的问题是:当路由器完成添加这些类时是否会触发事件?我需要一个仅在页面重新加载时触发一次的事件!
我有一点解决方法,但这并不是真的不可靠:
onInit(): void {
setTimeout(() => {
$(".navigation > nav.side > ul > li.active ul.sublist").show();
}, 1);
}
答案 0 :(得分:0)
您似乎正在尝试在Angular应用中使用jQuery。角度民众会建议这样做" Angular"方式,我也建议。如果您想在当前routerLink
为active
时应用某些CSS,则可以执行类似
<a routerLink="/user/bob" routerLinkActive="active-link">Bob</a>
来自https://angular.io/docs/ts/latest/api/router/index/RouterLinkActive-directive.html
如果您尝试显示该特定元素,则可以使用绑定到要隐藏的元素的ngIf或[hidden]。
您的观点
<navigation>
<nav class="side">
<ul>
<li class="active">
<ul class="sublist" *ngIf="showSublist">
<-- or
<ul class="sublist" [hidden]="!showSublist">
!ngIf评估显示:none而hidden是隐藏的可见性
组件将是
showSubList() {
this.showSublist = true;
}