Этого можно добиться, внедрив в свой компонент службу Router
и используя метод navigate
Ваш HTML-код будет выглядеть следующим образом
<nav>
<select id="department" name="department" [(ngModel)]="department" class="form-control" (change)="navigate($event.target.value)">
<option *ngFor="let links of navLinks" [value]="links.path" [routerLink]="links.path" routerLinkActive #rla="routerLinkActive">
{{links.label}}
</option>
</select>
</nav>
Ваш компонент будет выглядеть следующим образом.:
export class AppComponent {
navLinks = [
{ path : 'home', label : 'Home', id: 1 },
{ path : 'about', label : 'About', id: 2 }
];
name = 'Angular';
constructor(private router: Router) {
}
navigate(path) {
this.router.navigate(['/' + path])
}
}
РЕДАКТИРОВАТЬ
routerLink
не будет работать для элемента управления select, так как select не имеет события щелчка, которое фиксируется RouterLink
// ** Code below is copied from Angular source code on GitHub. **
@HostListener("click")
onClick(): boolean {
// If no target, or if target is _self, prevent default browser behavior
if (!isString(this.target) || this.target == '_self') {
this._router.navigate(this._commands, this._routeSegment);
return false;
}
return true;
}
Подробнее о маршрутизации здесь