Я изучаю Angluar 8, и все, что мне нужно сделать, - если маршрутизаторы /abilities активны, то он добавит имя класса «white» в заголовок, чтобы выделить активный маршрут, для которого я буду использовать возможности (cap ) компоненты для выделения, если маршрут активен, и в компоненте cap я вызову функцию из AppServiceService, эта функция в AppServiceService вызовет изменение логической переменной на true, чтобы добавить класс, с которым хорошо работает оператор console.log, но он не добавляет класс: (
это компонент заголовка
<header class="main_header" [ngClass]="{'active': isWhite}">
<div class="container">
<div class="row">
<div class="col_lg_3">
<a routerLink=""><img src="https://redhornstaging.wpengine.com/wp-content/uploads/2020/03/logo.svg"></a>
</div>
<div class="col_lg_9">
<ul class="navbar_list">
<li><a routerLink="">Home</a></li>
<li><a routerLink="/capabilities">Capabilities</a></li>
<li><a routerLink="/works">Works</a></li>
<li><a class="nav_item_btn" routerLink="/contact">Contact</a></li>
</ul>
</div>
</div>
</div>
</header>
это компонент cap
export class CapComponent implements OnInit {
constructor(private router:Router , private app:AppServiceService ) { }
//check if the current route is capabilities it will call function from the service
is_Active(){
if(this.router.url == '/capabilities'){
this.app.applyHeader();
// console.log(this.router.url);
}
}
ngOnInit(): void {
this.is_Active();
}
}
и это AppServiceService
export class AppServiceService {
constructor(public nav:NavbarComponent) { }
// nav = new NavbarComponent;
applyHeader(){
this.nav.isWhite = true;
console.log("Hello from service");
}
}
последний компонент, в котором возникла проблема, однако, когда я изменяю способ вызова функции из того же компонента, он хорошо работает
export class NavbarComponent implements OnInit {
isWhite : boolean = false ;
constructor() { }
makeItWhite(){
this.isWhite = true ;
if(this.isWhite){
console.log('white !');
}
}
ngOnInit(): void {
}
}