2017-02-17 15 views
5

मैं एक निश्चित मार्ग पर आईएम जोड़ने की कोशिश कर रहा हूं। कोड ngClass का उपयोग कर, मेरे AppComponent, Im में है।एक निश्चित रूट में एक कक्षा जोड़ें - कोणीय 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'

और हाँ, मैं मार्ग, राउटर मॉड्यूल और राउटर आयात कर रहा हूं एन हेडर। क्या कोई मेरी मदत कर सकता है?

अग्रिम धन्यवाद

+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 कोड .... })

संबंधित मुद्दे