Angular 在“角度2”中单击“从”按钮时更改导航级别
我的angular 2应用程序中有一个主导航组件,单击导航中的某个项目后,选定的css类将应用于选定的导航项目。然而,挂断我的东西是在我的应用程序中的一个页面上,我有一个按钮,一旦点击就会将用户路由到另一个页面,我希望主导航也相应地改变 以下是我的一些代码片段: 导航组件Angular 在“角度2”中单击“从”按钮时更改导航级别,angular,dependency-injection,angular-components,Angular,Dependency Injection,Angular Components,我的angular 2应用程序中有一个主导航组件,单击导航中的某个项目后,选定的css类将应用于选定的导航项目。然而,挂断我的东西是在我的应用程序中的一个页面上,我有一个按钮,一旦点击就会将用户路由到另一个页面,我希望主导航也相应地改变 以下是我的一些代码片段: 导航组件 export class NavComponent { links: {}; selectedClass: string; ngOnInit() { this.links = [
export class NavComponent {
links: {};
selectedClass: string;
ngOnInit() {
this.links = [
{
title: "Home",
route: "/app/home",
hidden: false
},
{
title: "Add",
route: "/app/add",
hidden: false
}];
}
selectedLink(link: String) {
this.selectedClass = link;
}
nav.html
<ng-container *ngFor="let link of links">
<li *ngIf="!link.hidden" [routerLink]="link.route" [class.selected]="link == selectedClass" (click)="selectedLink(link)" [title]="link.name">
<span>{{link.name}}</span>
</li>
</ng-container>
我想触发“selectedClass”功能,通过在另一个组件中单击按钮,使选定的导航项更改CSS类
非常感谢您的帮助。谢谢 正如garethb所说,您可以使用ngrx拥有一个存储应用程序状态的存储区。但为了保持简单,这里有两种其他方法: 您可以使用
@Input()selectedClass:string在导航组件中编写>并使用
<nav-component selectedClass="class-name"></nav-component>
然后从组件中相应地设置它
constructor(public somethingService: SomethingService) {
this.somethingService.selectedClass = 'first-class'
}
从模板中,您最终将使用
somethingService.selectedClass
看看redux。您可以在中心位置存储/修改类名,并可以从应用程序中的任何位置进行访问。
constructor(public somethingService: SomethingService) {
this.somethingService.selectedClass = 'first-class'
}
somethingService.selectedClass