¿Cómo determinar la ruta activa en AngularJS?

La tarea es determinar la ruta activa en AngularJS.

Enfoque: para determinar cuál es la ruta activa en cualquier momento en AngularJS, esto se puede lograr usando el método $on() y $location.path(). Un evento puede manejarse escribiendo un controlador de eventos usando un método $on(). $routeChangeStart es un evento que se activa cuando se inicia el cambio de ruta, de modo que lo maneja $rootScope.$on(). Por lo tanto, de esta manera, cada vez que se inicia un cambio de ruta, se activa $routeChangeStart manejado por el controlador de eventos $on() y luego $ubicación.ruta() da el valor de la ruta activa.

Sintaxis:

$rootScope.$on('$routeChangeStart', function () {
    console.log($location.path())
});

Ejemplo: Aquí estamos mostrando cuál es la ruta activa. Dentro del método $on(), inicialice el valor de $ubicación.ruta() en cualquier variable de alcance de AngularJS y a través de expresiones (enlace de datos) muestre sus detalles.

A continuación se muestra la implementación del enfoque anterior:

Nombre del archivo: Active_Route.html

<!DOCTYPE html>
<html>
      
<head>
    <title>Angular JS Active Route</title>
    <script src = 
"https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
    </script>
      
    <script src = 
"https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.min.js">
    </script>
</head>
      
<body style = "text-align:center;"> 
      
    <h1 style = "color:green;" > 
        GeeksForGeeks 
    </h1> 
      
    <p><a href = "#viewLanguages">View Languages</a></p>
    <p><a href = "#viewCourses">View Courses</a></p>
    <div ng-app = "mainApp" ng-controller = "GFGController">
        <div ng-view></div>
        <p>{{ message }}</p>
        <p>{{ mylocation }} </p>
    </div>
      
    <script>
        var mainApp = angular.module("mainApp", ['ngRoute']);
        mainApp.config(['$routeProvider', function($routeProvider) {
            $routeProvider
              
            .when('/viewLanguages', {
                template: "<p> Details of all languages content "
                    + "available at GeeksforGeeks </p>"
            })
              
            .when('/viewCourses', {
                template: "<p> Details of all courses available at"
                    + " GeeksforGeeks</p>"
            })
              
            .otherwise({
                redirectTo: '/viewLanguages'
            });
        }]);
  
        mainApp.controller('GFGController', function(
                    $scope, $location, $rootScope) {
            $scope.message = "This page will be used to promote"
                        + " GeeksforGeeks";
            $rootScope.$on('$routeChangeStart', function () {
                $scope.mylocation = $location.path();
            });
        });
    </script>
</body>
  
</html>

Producción:

  • Cuando se hace clic en el primer enlace:
  • Cuando se hace clic en el segundo enlace:

Publicación traducida automáticamente

Artículo escrito por pratyushranjan14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *