如何检测AngularJS中的路由变化

如何检测AngularJS中的路由变化

在这篇文章中,我们将看到如何检测AngularJS中的路由变化。为了检测AngularJS中任何时刻的路由变化,这可以通过使用$on()方法来实现。on()方法是一个事件处理程序,该事件将处理routeChangeSuccess,当路由/视图改变时,会被触发。

语法:

$rootScope.$on('$routeChangeSuccess', function () {
    Content...
});

方法:这里,每当有任何路由变化时,我们都会在控制台窗口显示 “路由改变”。在on()方法中,我们在控制台显示路由变更。因此,在这种方式下,每当路由变化发生时,它会触发由on()事件处理程序处理的$routeChangeSuccess,然后 “路由变化 “显示在控制台窗口。

例子:这个例子描述了在AngularJS中检测路由变化的过程。

<!DOCTYPE html>
<html>
  
<head>
    <title>Angular JS Route Change</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>
    <h3>Detecting the route change in AngularJS </h3>
    <div>
        <p>
            <a href="#viewLink1">Link 1</a>
        </p>
        <p>
            <a href="#viewLink2">Link 2</a>
        </p>
        <div ng-app="mainApp" ng-controller="GFGController">
            <div ng-view></div>
        </div>
    </div>
        <script>
            var mainApp = angular.module("mainApp", ['ngRoute']);
            mainApp.config(['routeProvider', function(routeProvider) {
                routeProvider.when('/viewLink1', {
                    template: "<p> This is Link 1 </p>"
                }).when('/viewLink2', {
                    template: "<p> This is Link 2 </p>"
                }).otherwise({
                    redirectTo: '/viewLink1'
                });
            }]);
            mainApp.controller('GFGController', 
            function(scope, location,rootScope) {
                rootScope.on('$routeChangeSuccess', function() {
                    console.log("route changed");
                });
            });
        </script>
</body>
</html>

输出:当我们改变链接时,$routeChangeSuccess事件被触发,从而在控制台窗口中显示路线变化。

如何检测AngularJS中的路由变化?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程