Comment ajouter une classe active au lien qui a un fragment en angulaire?

Anand Raja

La version angulaire est 7 et je veux ajouter une classe active au lien cliqué. Ici, le lien est la navigation old school (ID de la cuvette de routage).

Mon code HTML suit comme ci-dessous:

<div class="sidenav-container">
  <div class="list">
    <mat-list role="list">
      <mat-list-item role="listitem"
        ><a
          routerLink="./"
          fragment="report"
          >1. Report</a
        ></mat-list-item
      >
      <mat-list-item role="listitem"
        ><a
          routerLink="./"
          fragment="profile"
          >2. Profile</a
        >
      </mat-list-item>
    </mat-list>
  </div>
</div>

Et mon fichier css ressemble à ci-dessous:

.active {
  color: green;
  font-weight: 900;
}
Anand Raja

En angular, nous ajoutons une routerLinkActivedirective pour ajouter une classe css (disons une classe active) au lien. Cette directive ajoutera une classe active au lien particulier lorsqu'il est actif. Mais les fragments ne seront pas comptés pour ce scénario.

Pour rectifier ce problème, si vous utilisez la version 7.2.4 du routeur, nous pouvons résoudre facilement avec le code suivant [routerLinkActiveOptions]="{ exact: true }"

Ensuite, le code d'origine ressemblera à celui ci-dessous:

<div class="sidenav-container">
  <div class="list">
    <mat-list role="list">
      <mat-list-item role="listitem"
        ><a
          routerLink="./"
          fragment="report"
          routerLinkActive="active"
          [routerLinkActiveOptions]="{ exact: true }"
          >1. Report</a
        ></mat-list-item
      >
      <mat-list-item role="listitem"
        ><a
          routerLink="./"
          routerLinkActive="active"
          fragment="profile"
          [routerLinkActiveOptions]="{ exact: true }"
          >2. Profile</a
        >
      </mat-list-item>
    </mat-list>
  </div>
</div>

Si la version du routeur est inférieure à 7.2.4, nous devons utiliser l'approche ci-dessous pour résoudre ce problème.

Injecter ActivatedRoutele componnet

le code ressemblera à ceci:

import { ActivatedRoute } from '@angular/router';
import { share } from 'rxjs/operators';

activeFragment = this.route.fragment.pipe(share());
constructor(public route: ActivatedRoute) {}

Ensuite, nous devons ajouter la classe ci-dessous au modèle HTML.

[class.active]="(activeFragment | async) === 'report'"

Le code complet en HTML ressemblera à ce qui suit:

<div class="sidenav-container">
  <div class="list">
    <mat-list role="list">
      <mat-list-item role="listitem"
        ><a
          routerLink="./"
          fragment="report"
          [class.active]="(activeFragment | async) === 'report'"
          >1. Report</a
        ></mat-list-item
      >
      <mat-list-item role="listitem"
        ><a
          routerLink="./"
          fragment="profile"
          [class.active]="(activeFragment | async) === 'profile'"
          >2. Profile</a
        >
      </mat-list-item>
    </mat-list>
  </div>
</div>

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Ajouter une classe active au lien personnalisé au chargement

Réagir: ajouter une classe active au lien de navigation sélectionné en cliquant sur

Comment ajouter un objet au tableau qui est une variable d'instance d'une classe en java

Comment ajouter une classe au parent dans une application angulaire?

Ajouter une classe Div à la classe Hyperlien, puis cloner et ajouter un lien hypertexte au conteneur en cas de clic

Comment ajouter du texte et une image qui est un lien en HTML

Comment ajouter un constructeur et une classe qui étend une classe générique en tapuscrit?

Comment ajouter une classe active qui reste activée

comment ajouter une nouvelle clé et une nouvelle valeur au dictionnaire, qui est un attribut d'un objet de classe, dans une boucle en python

Comment ajouter une classe à une ligne entière d'un tableau en angulaire

Comment ajouter une classe à un lien en utilisant la fonction next() dans Jquery ?

Comment ajouter une classe à un lien dans functions.php?

Comment ajouter une classe active lorsqu'un lien spécifique a été cliqué à l'aide de bootstrap et jquery

Ajouter une classe au parent qui a un enfant spécifique

ajouter une classe active au menu principal en utilisant javascript

ajouter un filtre pour ajouter une classe au lien de balise dans wordpress

Comment puis-je ajouter et supprimer une classe active à un élément en JavaScript pur

Comment créer un formulaire angulaire qui fusionne un lien hypertexte vers une chaîne?

Comment ajouter un lien vers une liste en PHP

Comment ajouter un lien vers une table en utilisant Javascript ?

Rails: Comment ajouter un identifiant au lien?

Ajouter une classe 'active' au panneau PanelSnap

Comment ajouter une classe active en séquence ?

Comment ajouter/supprimer une classe au lien parent cliqué dans Angular JS ?

comment ajouter un composant de pagination à une table en angulaire?

comment ajouter un lien ajax à une vue ActiveAdmin qui déclenchera une fonction

Comment ajouter une classe au parent en javascript?

Comment ajouter une classe span en ruby au balisage HTML

Comment tester unitairement une méthode en angulaire qui crée un objet de classe importée

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  3. 3

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  4. 4

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Exporter la table de l'arborescence vers CSV avec mise en forme

  7. 7

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  8. 8

    Créer un système Buzzer à l'aide de python

  9. 9

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  10. 10

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  11. 11

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  12. 12

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  13. 13

    Conversion double en BigDecimal en Java

  14. 14

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  15. 15

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  18. 18

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  19. 19

    comment afficher un bouton au-dessus d'un autre élément ?

  20. 20

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  21. 21

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

chaudétiquette

Archive