2017-09-11 3 views
0

courte longue histoire que je veux afficher une barre latérale à côté selon le composant est rendu mon routeur de sortie, ce que je ressemble à ceci:Angular2 + appliquer la classe à l'élément extérieur du composant

<div class="content-wrapper clearfix" [class.show-sidebar]='showSidebar'> 
 
    <div class="router-wrapper"> 
 
     <router-outlet></router-outlet> 
 
    </div> 
 
    <div class="sidebar-wrapper"> 
 
     <sidebar></sidebar> 
 
    </div> 
 
</div>

donc, fondamentalement, certains composants ont besoin pour prendre la barre latérale aller, je ne suis pas sûr de ce que la plus propre approche est, ma première pensée a été que je pouvais lie la classe à un champ dans un service qui pourrait être injecté dans une les composants qui ont besoin de cacher/montrer la barre latérale ça marcherait mais ne me semble pas juste ...

Répondre

0

vous pouvez utiliser des événements de sortie du routeur

<router-outlet (activate)="onActivate($event)"></router-outlet> 

Et puis dans le composant contenant le routeur de sortie mettre en œuvre la méthode OnActivate:

public onActivate(event : any) { 
    console.log(event); // here you get hold of all the component and now you can make a variable true false and use ngif or hidden to show or hide the navbar 
}