2017-02-17 2 views
5

Я пытаюсь добавить класс, когда Im на определенном маршруте. Код находится в моем AppComponent, я использую ngClass.Добавить класс, когда в определенном маршруте - угловой 2

@Component({ 
    selector: 'my-app', 
    template: `<a [ngClass]="getRoute(router)"> 
     // Some html code.... 
    }) 

, а затем у меня есть функция на один и тот же app.component.ts

export class AppComponent { 
    getRoute(){ 
    if (this.router.url === '/atendimento'){ 
     return "hide-bar"; 
    } 
    } 
} 

Ошибку я получаю заключается в следующий:

Свойство 'маршрутизатор' делает не существует на типе «AppComponent»

И да, я импортирую маршруты, RouterModule и Router o n заголовок. Кто-нибудь может мне помочь?

Заранее спасибо

+1

Возможно https://angular.io/docs /ts/latest/api/router/index/RouterLinkActive-directive.html? –

+0

Привязка к методу таким образом, как правило, не очень хорошая идея. Он будет называться каждый раз, когда происходит обнаружение изменений, и это может нанести вред производительности вашего приложения. Скорее обновите поле в соответствующих событиях и привяжите его к этому полю. Обнаружение изменений довольно эффективно с полями. –

ответ

4

Вам нужно впрыснуть Маршрутизатор

export class AppComponent { 

    constructor(private router:Router) {} 

    getRoute(){ 
    if (this.router.url === '/atendimento'){ 
+1

Огромное спасибо Гюнтеру, я запомню ваши комментарии :) –

2

Пожалуйста впрыснуть службу маршрутизации в свой конструктор.

import { Router } from "@angular/router"; 
export class AppComponent { 
constructor(private router:Router){} 
    getRoute(){ 
    if (this.router.url === '/atendimento'){ 
     return "hide-bar"; 
    } 
    } 
} 

@Component ({ селектор: 'моя-приложение', шаблон: ` // Некоторые HTML код .... })

Смежные вопросы