Angularjs 带有路由的自定义状态输入和状态输出代码

Angularjs 带有路由的自定义状态输入和状态输出代码,angularjs,angularjs-routing,Angularjs,Angularjs Routing,我有一个相当简单的Angular项目,它在JavaScript中路由到两个不同的URL: function RootController($scope) {}; function PageOneController($scope) {}; angular.module('mymodule', []).config( ['$routeProvider', function($routeProvider) { $routeProvider.when('/', {

我有一个相当简单的Angular项目,它在JavaScript中路由到两个不同的URL:

function RootController($scope) {};

function PageOneController($scope) {};

angular.module('mymodule', []).config(
    ['$routeProvider', function($routeProvider) {
        $routeProvider.when('/', {
             templateUrl: "templates/root.html",
             controller: RootController
        }).when('/page1/', {
             templateUrl: "templates/page1.html",
             controller: PageOneController
        }).otherwise({redirectTo: '/'});
    }]
);
到目前为止,一切都很好,但我确实需要一种方法,在进入和退出这些路由时运行一些JavaScript函数。即:

 $routeProvider.when('/', {
     templateUrl: "templates/root.html",
     controller: RootController,
     onenter: function() { console.log("Enter!"); },
     onexit: function() { console.log("Exit!"); }
 });
有没有办法做到这一点?在进入状态/路由时,我需要绑定事件侦听器,在退出时,我需要销毁它们并拆除它们

有两个事件
$routeChangeStart
$routeChangeSuccess
,它们可以对您有所帮助

您可以在退出前使用
$routeChangeStart
,进入时使用
$routeChangeSuccess

您可以在任何控制器上执行
$scope.$on
,以监视这些事件